From ada51d1d0eac8a1c4448a664c42e8712bce9e650 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Sat, 19 Oct 2013 09:51:30 -0400 Subject: [PATCH] Merge branch 'master' of github.com:roundcube/roundcubemail --- program/js/list.js | 29 ++++++++++------------------- 1 files changed, 10 insertions(+), 19 deletions(-) diff --git a/program/js/list.js b/program/js/list.js index 76582d1..cb69bc4 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -35,7 +35,7 @@ this.tbody; this.fixed_header; this.frame = null; - this.rows = []; + this.rows = {}; this.selection = []; this.rowcount = 0; this.colcount = 0; @@ -50,7 +50,6 @@ this.keyboard = false; this.toggleselect = false; - this.dont_select = false; this.drag_active = false; this.col_drag_active = false; this.column_fixed = null; @@ -86,7 +85,7 @@ } if (this.tbody) { - this.rows = []; + this.rows = {}; this.rowcount = 0; var r, len, rows = this.tbody.childNodes; @@ -240,7 +239,7 @@ $(this.row_tagname() + ':not(.thead)', this.tbody).remove(); } - this.rows = []; + this.rows = {}; this.rowcount = 0; if (sel) @@ -409,14 +408,14 @@ var evtarget = rcube_event.get_target(e), tagname = evtarget.tagName.toLowerCase(); - if (this.dont_select || (evtarget && (tagname == 'input' || tagname == 'img'))) + if (evtarget && (tagname == 'input' || tagname == 'img' || (tagname != 'a' && evtarget.onclick))) return true; // accept right-clicks if (rcube_event.get_button(e) == 2) return true; - this.in_selection_before = e.istouch || this.in_selection(id) ? id : false; + this.in_selection_before = e && e.istouch || this.in_selection(id) ? id : false; // selects currently unselected row if (!this.in_selection_before) { @@ -455,12 +454,6 @@ if ((evtarget && (tagname == 'input' || tagname == 'img'))) return true; - // don't do anything (another action processed before) - if (this.dont_select) { - this.dont_select = false; - return false; - } - var dblclicked = now - this.rows[id].clicked < this.dblclick_time; // unselects currently selected row @@ -471,7 +464,7 @@ this.in_selection_before = false; // row was double clicked - if (this.rows && dblclicked && this.in_selection(id)) { + if (this.rowcount && dblclicked && this.in_selection(id)) { this.triggerEvent('dblclick'); now = 0; } @@ -509,8 +502,6 @@ evtarget = rcube_event.get_target(e), mod_key = rcube_event.get_modifier(e); - // Don't select this message - this.dont_select = true; // Don't treat double click on the expando as double click on the message. row.clicked = 0; @@ -703,7 +694,7 @@ */ get_next_row: function() { - if (!this.rows) + if (!this.rowcount) return false; var last_selected_row = this.rows[this.last_selected], @@ -717,7 +708,7 @@ get_prev_row: function() { - if (!this.rows) + if (!this.rowcount) return false; var last_selected_row = this.rows[this.last_selected], @@ -969,7 +960,7 @@ */ select_all: function(filter) { - if (!this.rows || !this.rows.length) + if (!this.rowcount) return false; // reset but remember selection first @@ -1001,7 +992,7 @@ */ invert_selection: function() { - if (!this.rows || !this.rows.length) + if (!this.rowcount) return false; // remember old selection -- Gitblit v1.9.1