From 0fb8940d066fc6ecac5a8c97385380c152b69acd Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 30 Oct 2013 07:53:29 -0400
Subject: [PATCH] Merge pull request #151 from cmcnulty/new-key-navigation
---
program/js/list.js | 34 +++++++++++++++++++++++-----------
1 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/program/js/list.js b/program/js/list.js
index 0707172..0f63c6d 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -856,8 +856,14 @@
{
var row = this.get_first_row();
if (row) {
- this.select_row(row, mod_key, false);
- this.scrollto(row);
+ if (mod_key) {
+ this.shift_select(row, mod_key);
+ this.triggerEvent('select');
+ this.scrollto(row);
+ }
+ else {
+ this.select(row);
+ }
}
},
@@ -869,8 +875,14 @@
{
var row = this.get_last_row();
if (row) {
- this.select_row(row, mod_key, false);
- this.scrollto(row);
+ if (mod_key) {
+ this.shift_select(row, mod_key);
+ this.triggerEvent('select');
+ this.scrollto(row);
+ }
+ else {
+ this.select(row);
+ }
}
},
@@ -1124,10 +1136,13 @@
// Stop propagation so that the browser doesn't scroll
rcube_event.cancel(e);
return this.use_arrow_key(keyCode, mod_key);
- case 61:
- case 107: // Plus sign on a numeric keypad (fc11 + firefox 3.5.2)
- case 109:
case 32:
+ rcube_event.cancel(e);
+ return this.select_row(this.last_selected, mod_key, true);
+ 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);
@@ -1196,11 +1211,8 @@
if (!selected_row || !selected_row.has_children)
return;
- if (keyCode == 32)
- keyCode = selected_row.expanded ? 109 : 61;
-
// expand
- if (keyCode == 61 || keyCode == 107) {
+ if (keyCode == 39 || keyCode == 107) {
if (selected_row.expanded)
return;
--
Gitblit v1.9.1