From 378d10b748f71311e661cbbc722ea8f393294711 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 20 May 2016 11:17:21 +0200 Subject: [PATCH] Fix bug where message list columns could be in wrong order after column drag-n-drop and list sorting --- CHANGELOG | 1 + program/js/list.js | 35 ++++++++++++++++++----------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b6f161e3a..2180fca33 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,7 @@ CHANGELOG Roundcube Webmail - Managesieve: Unhide advanced rule controls if there are inputs with errors - Managesieve: Display warning message when filter form contains errors - Fix bug where errors could have been not logged when per_user_logging=true +- Fix bug where message list columns could be in wrong order after column drag-n-drop and list sorting RELEASE 1.2.0 ------------- diff --git a/program/js/list.js b/program/js/list.js index 99fd48ff5..9b0bd9ae1 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -1688,33 +1688,34 @@ column_drag_mouse_up: function(e) this.col_draglayer = null; } - if (this.col_drag_active) - this.focus(); - this.col_drag_active = false; - rcube_event.remove_listener({event:'mousemove', object:this, method:'column_drag_mouse_move'}); rcube_event.remove_listener({event:'mouseup', object:this, method:'column_drag_mouse_up'}); + // remove temp divs this.del_dragfix(); - if (this.selected_column !== null && this.cols && this.cols.length) { - var i, cpos = 0, pos = rcube_event.get_mouse_pos(e); + if (this.col_drag_active) { + this.col_drag_active = false; + this.focus(); + this.triggerEvent('column_dragend', e); - // find destination position - for (i=0; i= this.cols[i]/2 + this.list_pos + cpos) - cpos += this.cols[i]; - else - break; - } + if (this.selected_column !== null && this.cols && this.cols.length) { + var i, cpos = 0, pos = rcube_event.get_mouse_pos(e); - if (i != this.selected_column && i != this.selected_column+1) { - this.column_replace(this.selected_column, i); + // find destination position + for (i=0; i= this.cols[i]/2 + this.list_pos + cpos) + cpos += this.cols[i]; + else + break; + } + + if (i != this.selected_column && i != this.selected_column+1) { + this.column_replace(this.selected_column, i); + } } } - this.triggerEvent('column_dragend', e); - return rcube_event.cancel(e); },