Detect file dragging

This commit is contained in:
DanyaPostfactum 2013-02-06 12:56:19 +10:00
commit bb9f98e435
2 changed files with 12 additions and 1 deletions

View file

@ -397,6 +397,8 @@ bindCheckbox("highlight_token", function(checked) {
/************** dragover ***************************/ /************** dragover ***************************/
event.addListener(container, "dragover", function(e) { event.addListener(container, "dragover", function(e) {
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return event.preventDefault(e); return event.preventDefault(e);
}); });

View file

@ -43,6 +43,9 @@ var DragdropHandler = function(mouseHandler) {
event.addListener(mouseTarget, "dragenter", function(e) { event.addListener(mouseTarget, "dragenter", function(e) {
if (editor.getReadOnly()) if (editor.getReadOnly())
return; return;
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return;
counter++; counter++;
if (!dragSelectionMarker) { if (!dragSelectionMarker) {
range = editor.getSelectionRange(); range = editor.getSelectionRange();
@ -59,6 +62,9 @@ var DragdropHandler = function(mouseHandler) {
event.addListener(mouseTarget, "dragover", function(e) { event.addListener(mouseTarget, "dragover", function(e) {
if (editor.getReadOnly()) if (editor.getReadOnly())
return; return;
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return;
x = e.clientX; x = e.clientX;
y = e.clientY; y = e.clientY;
return event.preventDefault(e); return event.preventDefault(e);
@ -73,6 +79,9 @@ var DragdropHandler = function(mouseHandler) {
event.addListener(mouseTarget, "dragleave", function(e) { event.addListener(mouseTarget, "dragleave", function(e) {
if (editor.getReadOnly()) if (editor.getReadOnly())
return; return;
var types = e.dataTransfer.types;
if (types && Array.prototype.indexOf.call(types, 'Files') !== -1)
return;
counter--; counter--;
if (counter > 0) if (counter > 0)
return; return;