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