From 8c2e58b42e89ca0216307553a906c2ca776c44f8 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Mon, 20 Mar 2006 17:11:35 -0500 Subject: [PATCH] Minor improvements and bugfixes (see changelog) --- program/js/app.js | 54 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 34 insertions(+), 20 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 4e9a8bf..4713788 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -7,7 +7,8 @@ | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ - | Author: Thomas Bruederli <roundcube@gmail.com> | + | Authors: Thomas Bruederli <roundcube@gmail.com> | + | Charles McNulty <charles@charlesmcnulty.com> | +-----------------------------------------------------------------------+ $Id$ @@ -231,7 +232,7 @@ this.enable_command('logout', true); // disable browser's contextmenus - document.oncontextmenu = function(){ return false; } + // document.oncontextmenu = function(){ return false; } // load body click event document.onmousedown = function(){ return rcube_webmail_client.reset_click(); }; @@ -248,7 +249,7 @@ // start interval for keep-alive/recent_check signal if (this.kepp_alive_interval && this.task=='mail' && this.gui_objects.messagelist) this.kepp_alive_int = setInterval(this.ref+'.check_for_recent()', this.kepp_alive_interval); - else + else if (this.task!='login') this.kepp_alive_int = setInterval(this.ref+'.send_keep_alive()', this.kepp_alive_interval); }; @@ -265,7 +266,6 @@ this.in_message_list = true; e.cancelBubble = true; - if (e.stopPropagation) e.stopPropagation(); }; // reset last clicked if user clicks on anything other than the message table @@ -276,7 +276,7 @@ var keyCode = document.layers ? e.which : document.all ? event.keyCode : document.getElementById ? e.keyCode : 0; var mod_key = this.get_modifier(e); var scroll_to = 0; - + var last_selected_row = this.list_rows[this.last_selected]; if (keyCode == 40) { // down arrow key pressed @@ -293,7 +293,7 @@ } if (!new_row) return false; scroll_to = new_row.offsetTop; - } else {return false}; + } else {return true;} if (mod_key != CONTROL_KEY) this.select_row(new_row.uid,mod_key); @@ -1090,6 +1090,7 @@ // onmouseup-handler of message list row this.click_row = function(e, id) { + var mod_key = this.get_modifier(e); // don't do anything (another action processed before) if (this.dont_select) @@ -1099,15 +1100,14 @@ } // unselects currently selected row - if (!this.drag_active && this.in_selection_before==id) { - var mod_key = this.get_modifier(e); + if (!this.drag_active && this.in_selection_before==id) this.select_row(id,mod_key); - } + this.drag_start = false; this.in_selection_before = false; // row was double clicked - if (this.task=='mail' && this.list_rows && this.list_rows[id].clicked) + if (this.task=='mail' && this.list_rows && this.list_rows[id].clicked && !mod_key) { this.show_message(id); return false; @@ -2681,10 +2681,10 @@ } // set unread count to window title - if (set_title && document.title) + reg = /^\([0-9]+\)\s+/i; + if (set_title && count && document.title) { var doc_title = String(document.title); - reg = /^\([0-9]+\)\s+/i; if (count && doc_title.match(reg)) document.title = doc_title.replace(reg, '('+count+') '); @@ -2692,6 +2692,11 @@ document.title = '('+count+') '+doc_title; else document.title = doc_title.replace(reg, ''); + } + // remove unread count from window title + else if (document.title) + { + document.title = document.title.replace(reg, ''); } }; @@ -2930,6 +2935,8 @@ }; +/* deprecated methods + // check if Shift-key is pressed on event this.check_shiftkey = function(e) { @@ -2959,22 +2966,29 @@ else return false; } +*/ - -// returns modifier key (constants defined at top of file) + // returns modifier key (constants defined at top of file) this.get_modifier = function(e) { var opcode = 0; - if (e = e || window.event) - { + e = e || window.event; + + if (bw.mac && e) + { + opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY); + return opcode; + } + if (e) + { opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY); - return opcode; - } + return opcode; + } if (e.cancelBubble) - { + { e.cancelBubble = true; e.returnValue = false; - } + } else if (e.preventDefault) e.preventDefault(); } -- Gitblit v1.9.1