From: Michael M Slusarz Date: Thu, 26 Mar 2009 04:10:12 +0000 (-0600) Subject: Correctly handle CTRL presses when dragging message over folder X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=40a45e5f4d37d7d1f1e054c98426f253086fc4b8;p=horde.git Correctly handle CTRL presses when dragging message over folder --- diff --git a/imp/js/src/DimpBase.js b/imp/js/src/DimpBase.js index 35e6fec27..94b74b7fc 100644 --- a/imp/js/src/DimpBase.js +++ b/imp/js/src/DimpBase.js @@ -2457,7 +2457,26 @@ DimpBase._folderDropConfig = { if (drop == $('dropbase')) { return DIMP.text.moveto.replace(/%s/, d).replace(/%s/, DIMP.text.baselevel); } else { - m = (e.ctrlKey) ? DIMP.text.copyto : DIMP.text.moveto; + switch (e.type) { + case 'mousemove': + m = (e.ctrlKey) ? DIMP.text.copyto : DIMP.text.moveto; + break; + + case 'keydown': + /* Can't use ctrlKey here since different browsers handle + * the ctrlKey in different ways when it comes to firing + * keybaord events. */ + m = (e.keyCode == 17) ? DIMP.text.copyto : DIMP.text.moveto; + break; + + case 'keyup': + if (e.keyCode == 17) { + m = DIMP.text.moveto; + } else { + m = (e.ctrlKey) ? DIMP.text.copyto : DIMP.text.moveto; + } + break; + } if (drag.hasClassName('folder')) { return (ftype != 'special' && !DimpBase.isSubfolder(drag, drop)) ? m.replace(/%s/, d).replace(/%s/, l) : ''; } else { @@ -2465,6 +2484,7 @@ DimpBase._folderDropConfig = { } } }, + keypress: true, onDrop: DimpBase._folderDropHandler.bind(DimpBase) };