diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-07-26 10:16:02 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-07-26 10:16:02 +0200 |
commit | 19577698176df4583cbaecba41c83371c3a368da (patch) | |
tree | dda28235db9bdf2ab11f9371a3101b542da95a29 | |
parent | 6c5c22b877f6a91b4046433e13588cd3c679dc3f (diff) |
Handle clicks on list parent element from the list widget
-rw-r--r-- | program/js/app.js | 17 | ||||
-rw-r--r-- | program/js/list.js | 9 |
2 files changed, 8 insertions, 18 deletions
diff --git a/program/js/app.js b/program/js/app.js index 28df384c8..e00479f90 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -236,8 +236,6 @@ function rcube_webmail() return ref.command('sort', $(this).attr('rel'), this); }); - this.gui_objects.messagelist.parentNode.onclick = function(e){ return ref.click_on_list(e || window.event); }; - this.enable_command('toggle_status', 'toggle_flag', 'sort', true); this.enable_command('set-listmode', this.env.threads && !this.is_multifolder_listing()); @@ -406,8 +404,6 @@ function rcube_webmail() .addEventListener('dragend', function(e) { ref.drag_end(e); }) .init(); - this.gui_objects.contactslist.parentNode.onmousedown = function(e){ return ref.click_on_list(e); }; - $(this.gui_objects.qsearchbox).focusin(function() { ref.contact_list.blur(); }); this.update_group_commands(); @@ -1714,19 +1710,6 @@ function rcube_webmail() return true; } - this.click_on_list = function(e) - { - if (this.gui_objects.qsearchbox) - this.gui_objects.qsearchbox.blur(); - - if (this.message_list) - this.message_list.focus(e); - else if (this.contact_list) - this.contact_list.focus(e); - - return true; - }; - this.msglist_select = function(list) { if (this.preview_timer) diff --git a/program/js/list.js b/program/js/list.js index d10fa22af..cdb1a4687 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -61,6 +61,7 @@ function rcube_list_widget(list, p) this.keyboard = false; this.toggleselect = false; this.aria_listbox = false; + this.parent_focus = true; this.drag_active = false; this.col_drag_active = false; @@ -104,11 +105,13 @@ init: function() $(this.list).attr('aria-multiselectable', 'true'); } + var me = this; + if (this.tbody) { this.rows = {}; this.rowcount = 0; - var r, len, rows = this.tbody.childNodes, me = this; + var r, len, rows = this.tbody.childNodes; for (r=0, len=rows.length; r<len; r++) { this.rowcount += this.init_row(rows[r]) ? 1 : 0; @@ -127,6 +130,10 @@ init: function() } } + if (this.parent_focus) { + this.list.parentNode.onclick = function(e) { me.focus(e); }; + } + return this; }, |