From 48e340a82938a83ff337eadb7d6d64c2b13acffe Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 13 Aug 2014 12:25:09 -0400
Subject: [PATCH] Allow focussing treelist item checkboxes with tab and normal list navigation with cursor keys (#1489648)
---
program/js/treelist.js | 5 +++--
program/js/app.js | 1 +
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/program/js/app.js b/program/js/app.js
index 5a87347..a8e66e2 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -5745,6 +5745,7 @@
this.subscription_list = new rcube_treelist_widget(this.gui_objects.subscriptionlist, {
selectable: true,
+ tabexit: false,
id_prefix: 'rcmli',
id_encode: this.html_identifier_encode,
id_decode: this.html_identifier_decode,
diff --git a/program/js/treelist.js b/program/js/treelist.js
index 5e6d326..3a13602 100644
--- a/program/js/treelist.js
+++ b/program/js/treelist.js
@@ -46,6 +46,7 @@
scroll_speed: 20,
save_state: false,
keyboard: true,
+ tabexit: true,
check_droptarget: function(node) { return !node.virtual; }
}, p || {});
@@ -810,7 +811,7 @@
var target = e.target || {},
keyCode = rcube_event.get_keycode(e);
- if (!has_focus || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
+ if (!has_focus || target.nodeName == 'INPUT' && keyCode != 38 && keyCode != 40 || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
return true;
switch (keyCode) {
@@ -836,7 +837,7 @@
return false;
case 9: // Tab
- if (p.keyboard) {
+ if (p.keyboard && p.tabexit) {
// jump to last/first item to move focus away from the treelist widget by tab
var limit = rcube_event.get_modifier(e) == SHIFT_KEY ? 'first' : 'last';
focus_noscroll(container.find('li[role=treeitem]:has(a)')[limit]().find('a:'+limit));
--
Gitblit v1.9.1