summaryrefslogtreecommitdiff
path: root/program/js/list.js
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-09-15 18:57:35 +0000
committeralecpl <alec@alec.pl>2011-09-15 18:57:35 +0000
commit699a25a822276c12a0aa9253dd6a397c1b09899b (patch)
tree5b8e0543b8883311dd38d7e97d49b829792c1fd4 /program/js/list.js
parentd43332a8a5d30f135f696fcdca1e7703af23cf6d (diff)
- Disable message list keypress operations when CTRL key is pressed,
to workaround FF6 issue, where Ctrl+Pg(Up/Down) was changing list page and browser tab) - Fix multiselection with Ctrl+Up/Down keys
Diffstat (limited to 'program/js/list.js')
-rw-r--r--program/js/list.js15
1 files changed, 8 insertions, 7 deletions
diff --git a/program/js/list.js b/program/js/list.js
index 874f8f73e..f0e1c9bc1 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -36,7 +36,7 @@ function rcube_list_widget(list, p)
this.colcount = 0;
this.subject_col = -1;
- this.shiftkey = false;
+ this.modkey = 0;
this.multiselect = false;
this.multiexpand = false;
this.multi_selecting = false;
@@ -648,7 +648,7 @@ select_row: function(id, mod_key, with_mouse)
case CONTROL_KEY:
if (!with_mouse)
this.highlight_row(id, true);
- break;
+ break;
case CONTROL_SHIFT_KEY:
this.shift_select(id, true);
@@ -962,7 +962,7 @@ key_press: function(e)
switch (keyCode) {
case 40:
- case 38:
+ case 38:
case 63233: // "down", in safari keypress
case 63232: // "up", in safari keypress
// Stop propagation so that the browser doesn't scroll
@@ -976,7 +976,9 @@ key_press: function(e)
rcube_event.cancel(e);
var ret = this.use_plusminus_key(keyCode, mod_key);
this.key_pressed = keyCode;
+ this.modkey = mod_key;
this.triggerEvent('keypress');
+ this.modkey = 0;
return ret;
case 36: // Home
this.select_first(mod_key);
@@ -985,11 +987,10 @@ key_press: function(e)
this.select_last(mod_key);
return rcube_event.cancel(e);
default:
- this.shiftkey = e.shiftKey;
this.key_pressed = keyCode;
+ this.modkey = mod_key;
this.triggerEvent('keypress');
- // reset shiftkey flag, we need it only for registered events
- this.shiftkey = false;
+ this.modkey = 0;
if (this.key_pressed == this.BACKSPACE_KEY)
return rcube_event.cancel(e);
@@ -1044,7 +1045,7 @@ use_arrow_key: function(keyCode, mod_key)
new_row = this.get_prev_row();
if (new_row) {
- this.select_row(new_row.uid, mod_key, true);
+ this.select_row(new_row.uid, mod_key, false);
this.scrollto(new_row.uid);
}