Thomas Bruederli
2014-06-16 74052d49b9b8b12897a72c87445e5e6064c5001e
Avoid scrolling when moving focus from a treelist widget (#1489929)
1 files modified
15 ■■■■■ changed files
program/js/treelist.js 15 ●●●●● patch | view | raw | blame | history
program/js/treelist.js
@@ -755,7 +755,7 @@
      case 9:  // Tab
        // 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';
        container.find('li[role=treeitem]:has(a)')[limit]().find('a:'+limit).focus();
        focus_noscroll(container.find('li[role=treeitem]:has(a)')[limit]().find('a:'+limit));
        break;
    }
@@ -788,6 +788,19 @@
    }
  }
  /**
   * Focus the given element without scrolling the list container
   */
  function focus_noscroll(elem)
  {
    if (elem.length) {
      var frame = container.parent().get(0) || { scrollTop:0 },
        y = frame.scrollTop || frame.scrollY;
      elem.focus();
      frame.scrollTop = y;
    }
  }
  ///// drag & drop support