summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-07-26 10:16:02 +0200
committerAleksander Machniak <alec@alec.pl>2014-07-26 10:16:02 +0200
commit19577698176df4583cbaecba41c83371c3a368da (patch)
treedda28235db9bdf2ab11f9371a3101b542da95a29
parent6c5c22b877f6a91b4046433e13588cd3c679dc3f (diff)
Handle clicks on list parent element from the list widget
-rw-r--r--program/js/app.js17
-rw-r--r--program/js/list.js9
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;
},