diff --git a/CHANGELOG b/CHANGELOG index 3db69dd88..d002a6b37 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Add drag cancelling with ESC key (#1484344) - Support initial identity name from virtuser_query (#1484003) - Added message menu, removed Print and Source buttons - Added possibility to save message as .eml file (#1485861) diff --git a/program/js/app.js b/program/js/app.js index 8b357e70a..b29a3575d 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -162,7 +162,7 @@ function rcube_webmail() this.message_list.addEventListener('select', function(o){ p.msglist_select(o); }); this.message_list.addEventListener('dragstart', function(o){ p.drag_start(o); }); this.message_list.addEventListener('dragmove', function(o, e){ p.drag_move(e); }); - this.message_list.addEventListener('dragend', function(o){ p.drag_active = false; }); + this.message_list.addEventListener('dragend', function(o, e){ p.drag_end(e); }); document.onmouseup = function(e){ return p.doc_mouse_up(e); }; this.message_list.init(); @@ -278,7 +278,7 @@ function rcube_webmail() this.contact_list.addEventListener('select', function(o){ p.contactlist_select(o); }); this.contact_list.addEventListener('dragstart', function(o){ p.drag_start(o); }); this.contact_list.addEventListener('dragmove', function(o, e){ p.drag_move(e); }); - this.contact_list.addEventListener('dragend', function(o){ p.drag_active = false; }); + this.contact_list.addEventListener('dragend', function(o, e){ p.drag_end(e); }); this.contact_list.init(); if (this.env.cid) @@ -1258,6 +1258,21 @@ function rcube_webmail() } }; + this.drag_end = function(e) + { + this.drag_active = false; + + // over the folders + if (this.gui_objects.folderlist && this.env.folder_coords) { + for (var k in this.env.folder_coords) { + if (k == this.env.last_folder_target) { + $(this.get_folder_li(k)).removeClass('droptarget'); + this.env.last_folder_target = null; + } + } + } + }; + this.drag_move = function(e) { if (this.gui_objects.folderlist && this.env.folder_coords) { diff --git a/program/js/list.js b/program/js/list.js index 17bf4cf3f..addd1e652 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -625,6 +625,7 @@ key_press: function(e) var keyCode = rcube_event.get_keycode(e); var mod_key = rcube_event.get_modifier(e); + switch (keyCode) { case 40: @@ -653,6 +654,9 @@ key_down: function(e) { switch (rcube_event.get_keycode(e)) { + case 27: + if (this.drag_active) + this.drag_mouse_up(e); case 40: case 38: case 63233: