summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--program/js/app.js19
-rw-r--r--program/js/list.js4
3 files changed, 22 insertions, 2 deletions
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: