Skip to content

Commit b7d6ceb

Browse files
committed
Ignore events not triggered by the widget listeners. Fixes blueimp#2177.
1 parent 1381974 commit b7d6ceb

File tree

1 file changed

+31
-25
lines changed

1 file changed

+31
-25
lines changed

js/jquery.fileupload.js

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* jQuery File Upload Plugin 5.28.6
2+
* jQuery File Upload Plugin 5.28.7
33
* https://github.com/blueimp/jQuery-File-Upload
44
*
55
* Copyright 2010, Sebastian Tschan
@@ -1049,44 +1049,50 @@
10491049
},
10501050

10511051
_onPaste: function (e) {
1052-
var cbd = e.originalEvent.clipboardData,
1053-
items = (cbd && cbd.items) || [],
1052+
var items = e.originalEvent && e.originalEvent.clipboardData &&
1053+
e.originalEvent.clipboardData.items,
10541054
data = {files: []};
1055-
$.each(items, function (index, item) {
1056-
var file = item.getAsFile && item.getAsFile();
1057-
if (file) {
1058-
data.files.push(file);
1055+
if (items && items.length) {
1056+
$.each(items, function (index, item) {
1057+
var file = item.getAsFile && item.getAsFile();
1058+
if (file) {
1059+
data.files.push(file);
1060+
}
1061+
});
1062+
if (this._trigger('paste', e, data) === false ||
1063+
this._onAdd(e, data) === false) {
1064+
return false;
10591065
}
1060-
});
1061-
if (this._trigger('paste', e, data) === false ||
1062-
this._onAdd(e, data) === false) {
1063-
return false;
10641066
}
10651067
},
10661068

10671069
_onDrop: function (e) {
10681070
var that = this,
1069-
dataTransfer = e.dataTransfer = e.originalEvent.dataTransfer,
1071+
dataTransfer = e.dataTransfer = e.originalEvent &&
1072+
e.originalEvent.dataTransfer,
10701073
data = {};
10711074
if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
10721075
e.preventDefault();
1076+
this._getDroppedFiles(dataTransfer).always(function (files) {
1077+
data.files = files;
1078+
if (that._trigger('drop', e, data) !== false) {
1079+
that._onAdd(e, data);
1080+
}
1081+
});
10731082
}
1074-
this._getDroppedFiles(dataTransfer).always(function (files) {
1075-
data.files = files;
1076-
if (that._trigger('drop', e, data) !== false) {
1077-
that._onAdd(e, data);
1078-
}
1079-
});
10801083
},
10811084

10821085
_onDragOver: function (e) {
1083-
var dataTransfer = e.dataTransfer = e.originalEvent.dataTransfer;
1084-
if (this._trigger('dragover', e) === false) {
1085-
return false;
1086-
}
1087-
if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1) {
1088-
dataTransfer.dropEffect = 'copy';
1089-
e.preventDefault();
1086+
var dataTransfer = e.dataTransfer = e.originalEvent &&
1087+
e.originalEvent.dataTransfer;
1088+
if (dataTransfer) {
1089+
if (this._trigger('dragover', e) === false) {
1090+
return false;
1091+
}
1092+
if ($.inArray('Files', dataTransfer.types) !== -1) {
1093+
dataTransfer.dropEffect = 'copy';
1094+
e.preventDefault();
1095+
}
10901096
}
10911097
},
10921098

0 commit comments

Comments
 (0)