From 8080554cf3dda8f799a714c202f61039ed224b86 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 14 Jan 2014 14:11:41 -0500
Subject: [PATCH] Remove expand/collapse with plus/minus keys (on numeric keypad) (#1489513)
---
program/js/list.js | 75 +++++++++++++++++--------------------
CHANGELOG | 3 +
2 files changed, 36 insertions(+), 42 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index ce6f9bc..f45bb04 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,8 @@
CHANGELOG Roundcube Webmail
===========================
-- Fix issues where filesystem path was added to all-attachments (zip) file (#1489507)
+- Remove expand/collapse with plus/minus keys (on numeric keypad) (#1489513)
+- Fix issue where filesystem path was added to all-attachments (zip) file (#1489507)
- Fix case-sensitivity of email addresses handling on compose (#1485499)
- Don't alter Message-ID of a draft when sending (#1489409)
- Fix issue where deprecated syntax for HTML lists was not handled properly (#1488768)
diff --git a/program/js/list.js b/program/js/list.js
index dafc9eb..022ed31 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -1150,6 +1150,7 @@
key_press: function(e)
{
var target = e.target || {};
+
if (this.focused != true || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
return true;
@@ -1171,11 +1172,9 @@
case 37: // Left arrow key
case 39: // Right arrow key
- case 107: // Plus sign on a numeric keypad
- case 109: // Minus sign on a numeric keypad
// Stop propagation
rcube_event.cancel(e);
- var ret = this.use_plusminus_key(keyCode, mod_key);
+ var ret = this.use_arrow_key(keyCode, mod_key);
this.key_pressed = keyCode;
this.modkey = mod_key;
this.triggerEvent('keypress');
@@ -1220,55 +1219,49 @@
*/
use_arrow_key: function(keyCode, mod_key)
{
- var new_row;
+ var new_row,
+ selected_row = this.rows[this.last_selected];
+
// Safari uses the nonstandard keycodes 63232/63233 for up/down, if we're
// using the keypress event (but not the keydown or keyup event).
if (keyCode == 40 || keyCode == 63233) // down arrow key pressed
new_row = this.get_next_row();
else if (keyCode == 38 || keyCode == 63232) // up arrow key pressed
new_row = this.get_prev_row();
+ else {
+ if (!selected_row || !selected_row.has_children)
+ return;
+
+ // expand
+ if (keyCode == 39) {
+ if (selected_row.expanded)
+ return;
+
+ if (mod_key == CONTROL_KEY || this.multiexpand)
+ this.expand_all(selected_row);
+ else
+ this.expand(selected_row);
+ }
+ // collapse
+ else {
+ if (!selected_row.expanded)
+ return;
+
+ if (mod_key == CONTROL_KEY || this.multiexpand)
+ this.collapse_all(selected_row);
+ else
+ this.collapse(selected_row);
+ }
+
+ this.update_expando(selected_row.uid, selected_row.expanded);
+
+ return false;
+ }
if (new_row) {
this.select_row(new_row.uid, mod_key, false);
this.scrollto(new_row.uid);
}
-
- return false;
-},
-
-
-/**
- * Special handling method for +/- keys
- */
-use_plusminus_key: function(keyCode, mod_key)
-{
- var selected_row = this.rows[this.last_selected];
-
- if (!selected_row || !selected_row.has_children)
- return;
-
- // expand
- if (keyCode == 39 || keyCode == 107) {
- if (selected_row.expanded)
- return;
-
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.expand_all(selected_row);
- else
- this.expand(selected_row);
- }
- // collapse
- else {
- if (!selected_row.expanded)
- return;
-
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.collapse_all(selected_row);
- else
- this.collapse(selected_row);
- }
-
- this.update_expando(selected_row.uid, selected_row.expanded);
return false;
},
--
Gitblit v1.9.1