]> git.wh0rd.org - tt-rss.git/blobdiff - js/tt-rss.js
assign stored content-insert height/width in switchPanelMode(); reset stored sizes...
[tt-rss.git] / js / tt-rss.js
index c14c65f2797c939e8e09a12601131c151afbedfa..7d6f22f877e529a7a4f34cf6d70f9eedc922153e 100644 (file)
@@ -500,6 +500,10 @@ function init() {
                                if (!isCdmMode()) {
                                        _widescreen_mode = !_widescreen_mode;
 
+                                       // reset stored sizes because geometry changed
+                                       setCookie("ttrss_ci_width", 0);
+                                       setCookie("ttrss_ci_height", 0);
+
                                        switchPanelMode(_widescreen_mode);
                                }
                };
@@ -550,36 +554,26 @@ function init_second_stage() {
                        updateFeedList();
                        closeArticlePanel();
 
-                       _widescreen_mode = getInitParam("widescreen");
-                       switchPanelMode(_widescreen_mode);
-
                        if (parseInt(getCookie("ttrss_fh_width")) > 0) {
                                dijit.byId("feeds-holder").domNode.setStyle(
                                        {width: getCookie("ttrss_fh_width") + "px" });
                        }
 
-                       if (parseInt(getCookie("ttrss_ci_width")) > 0) {
-                               if (_widescreen_mode) {
-                                       dijit.byId("content-insert").domNode.setStyle(
-                                               {width: getCookie("ttrss_ci_width") + "px" });
-
-                               } else {
-                                       dijit.byId("content-insert").domNode.setStyle(
-                                               {height: getCookie("ttrss_ci_height") + "px" });
-                               }
-                       }
-
                        dijit.byId("main").resize();
 
                        var tmph = dojo.connect(dijit.byId('feeds-holder'), 'resize',
                                function (args) {
-                                       setCookie("ttrss_fh_width", args.w, getInitParam("cookie_lifetime"));
+                                       if (args && args.w >= 0) {
+                                               setCookie("ttrss_fh_width", args.w, getInitParam("cookie_lifetime"));
+                                       }
                        });
 
                        var tmph = dojo.connect(dijit.byId('content-insert'), 'resize',
                                function (args) {
-                                       setCookie("ttrss_ci_width", args.w, getInitParam("cookie_lifetime"));
-                                       setCookie("ttrss_ci_height", args.h, getInitParam("cookie_lifetime"));
+                                       if (args && args.w >= 0 && args.h >= 0) {
+                                               setCookie("ttrss_ci_width", args.w, getInitParam("cookie_lifetime"));
+                                               setCookie("ttrss_ci_height", args.h, getInitParam("cookie_lifetime"));
+                                       }
                        });
 
                });
@@ -620,6 +614,9 @@ function init_second_stage() {
                hotkeys[1] = tmp;
                setInitParam("hotkeys", hotkeys);
 
+               _widescreen_mode = getInitParam("widescreen");
+               switchPanelMode(_widescreen_mode);
+
                console.log("second stage ok");
 
                if (getInitParam("simple_update")) {
@@ -702,6 +699,10 @@ function quickMenuGo(opid) {
                        if (!isCdmMode()) {
                                _widescreen_mode = !_widescreen_mode;
 
+                               // reset stored sizes because geometry changed
+                               setCookie("ttrss_ci_width", 0);
+                               setCookie("ttrss_ci_height", 0);
+
                                switchPanelMode(_widescreen_mode);
                        }
                        break;
@@ -848,11 +849,15 @@ function hotkey_handler(e) {
                var keycode = false;
                var shift_key = false;
                var ctrl_key = false;
+               var alt_key = false;
+               var meta_key = false;
 
                var cmdline = $('cmdline');
 
                shift_key = e.shiftKey;
                ctrl_key = e.ctrlKey;
+               alt_key = e.altKey;
+               meta_key = e.metaKey;
 
                if (window.event) {
                        keycode = window.event.keyCode;
@@ -894,6 +899,8 @@ function hotkey_handler(e) {
                // ensure ^*char notation
                if (shift_key) hotkey = "*" + hotkey;
                if (ctrl_key) hotkey = "^" + hotkey;
+               if (alt_key) hotkey = "+" + hotkey;
+               if (meta_key) hotkey = "%" + hotkey;
 
                hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
                hotkey_prefix = false;
@@ -979,6 +986,12 @@ function handle_rpc_json(transport, scheduled_call) {
        try {
                var reply = JSON.parse(transport.responseText);
 
+               var netalert_dijit = dijit.byId("net-alert");
+               var netalert = false;
+
+               if (netalert_dijit)
+                       netalert = netalert_dijit.domNode;
+
                if (reply) {
 
                        var error = reply['error'];
@@ -1025,16 +1038,21 @@ function handle_rpc_json(transport, scheduled_call) {
                        if (runtime_info)
                                parse_runtime_info(runtime_info);
 
-                       Element.hide(dijit.byId("net-alert").domNode);
+                       if (netalert) Element.hide(netalert);
 
                } else {
-                       //notify_error("Error communicating with server.");
-                       Element.show(dijit.byId("net-alert").domNode);
+                       if (netalert)
+                               Element.show(netalert);
+                       else
+                               notify_error("Communication problem with server.");
                }
 
        } catch (e) {
-               Element.show(dijit.byId("net-alert").domNode);
-               //notify_error("Error communicating with server.");
+               if (netalert)
+                       Element.show(netalert);
+               else
+                       notify_error("Communication problem with server.");
+
                console.log(e);
                //exception_error("handle_rpc_json", e, transport);
        }
@@ -1054,11 +1072,13 @@ function switchPanelMode(wide) {
 
                        dijit.byId("content-insert").domNode.setStyle({width: '50%',
                                height: 'auto',
-                               borderLeftWidth: '1px',
-                               borderLeftColor: '#c0c0c0',
                                borderTopWidth: '0px' });
 
-                       $("headlines-toolbar").setStyle({ borderBottomWidth: '0px' });
+                       if (parseInt(getCookie("ttrss_ci_width")) > 0) {
+                               dijit.byId("content-insert").domNode.setStyle(
+                                       {width: getCookie("ttrss_ci_width") + "px" });
+                       }
+
                        $("headlines-frame").setStyle({ borderBottomWidth: '0px' });
                        $("headlines-frame").addClassName("wide");
 
@@ -1068,10 +1088,12 @@ function switchPanelMode(wide) {
 
                        dijit.byId("content-insert").domNode.setStyle({width: 'auto',
                                height: '50%',
-                               borderLeftWidth: '0px',
-                               borderTopWidth: '1px'});
+                               borderTopWidth: '0px'});
 
-                       $("headlines-toolbar").setStyle({ borderBottomWidth: '1px' });
+                       if (parseInt(getCookie("ttrss_ci_height")) > 0) {
+                               dijit.byId("content-insert").domNode.setStyle(
+                                       {height: getCookie("ttrss_ci_height") + "px" });
+                       }
 
                        $("headlines-frame").setStyle({ borderBottomWidth: '1px' });
                        $("headlines-frame").removeClassName("wide");