| Requires: common.js |
+-----------------------------------------------------------------------+
- $Id: list.js 4750 2011-05-12 09:27:17Z alec $
+ $Id: list.js 5271 2011-09-22 20:51:42Z thomasb $
*/
this.colcount = 0;
this.subject_col = -1;
- this.shiftkey = false;
+ this.modkey = 0;
this.multiselect = false;
this.multiexpand = false;
this.multi_selecting = false;
case CONTROL_KEY:
if (!with_mouse)
this.highlight_row(id, true);
- break;
+ break;
case CONTROL_SHIFT_KEY:
this.shift_select(id, true);
*/
key_press: function(e)
{
- if (this.focused != true)
+ var target = e.target || {};
+ if (this.focused != true || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
return true;
var keyCode = rcube_event.get_keycode(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
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);
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);
*/
key_down: function(e)
{
+ var target = e.target || {};
+ if (this.focused != true || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
+ return true;
+
switch (rcube_event.get_keycode(e)) {
case 27:
if (this.drag_active)
- return this.drag_mouse_up(e);
+ return this.drag_mouse_up(e);
if (this.col_drag_active) {
this.selected_column = null;
- return this.column_drag_mouse_up(e);
+ return this.column_drag_mouse_up(e);
}
case 40:
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);
}