Thomas Bruederli
2014-08-13 48e340a82938a83ff337eadb7d6d64c2b13acffe
Allow focussing treelist item checkboxes with tab and normal list navigation with cursor keys (#1489648)
2 files modified
6 ■■■■■ changed files
program/js/app.js 1 ●●●● patch | view | raw | blame | history
program/js/treelist.js 5 ●●●●● patch | view | raw | blame | history
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,
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));