diff options
Diffstat (limited to 'program/js/treelist.js')
-rw-r--r-- | program/js/treelist.js | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/program/js/treelist.js b/program/js/treelist.js index 3a1360229..a7cd7cd43 100644 --- a/program/js/treelist.js +++ b/program/js/treelist.js @@ -47,6 +47,7 @@ function rcube_treelist_widget(node, p) save_state: false, keyboard: true, tabexit: true, + parent_focus: false, check_droptarget: function(node) { return !node.virtual; } }, p || {}); @@ -187,6 +188,17 @@ function rcube_treelist_widget(node, p) $(document.body) .bind('keydown', keypress); + // catch focus when clicking the list container area + if (p.parent_focus) { + container.parent(':not(body)').click(function(e) { + if (!has_focus && selection) { + $(get_item(selection)).find(':focusable').first().focus(); + } + else if (!has_focus) { + container.children('li:has(:focusable)').first().find(':focusable').first().focus(); + } + }); + } /////// private methods |