Make waving cover files around on boards more reliable
Summary:
Currently, in Safari, if you drag an image onto a board to make it a cover file and then wave it around wildly a lot over differnent cards, it sometimes glitches out a bit and won't drop on them properly.
This appears to be because sequencing and delivery of dragenter/dragleave events isn't always totally ideal.
Instead, just cancel any existing drag when we get a new drag that targets a new drop target.
Test Plan:
- Opened a board with a bunch of cards.
- Dragged a file from my desktop onto the board.
- Waved it around wildly, hovering over many different cards.
- Before patch: sometimes cards under the cursor stopped highlighting properly.
- After patch: behavior seems correct and consistent.
Reviewers: chad
Reviewed By: chad
Differential Revision: https://secure.phabricator.com/D15208
This commit is contained in:
@@ -11,7 +11,7 @@ return array(
|
|||||||
'core.pkg.js' => '808ae845',
|
'core.pkg.js' => '808ae845',
|
||||||
'darkconsole.pkg.js' => 'e7393ebb',
|
'darkconsole.pkg.js' => 'e7393ebb',
|
||||||
'differential.pkg.css' => '2de124c9',
|
'differential.pkg.css' => '2de124c9',
|
||||||
'differential.pkg.js' => '6b42b4bc',
|
'differential.pkg.js' => 'd0cd0df6',
|
||||||
'diffusion.pkg.css' => 'f45955ed',
|
'diffusion.pkg.css' => 'f45955ed',
|
||||||
'diffusion.pkg.js' => '3a9a8bfa',
|
'diffusion.pkg.js' => '3a9a8bfa',
|
||||||
'maniphest.pkg.css' => '4845691a',
|
'maniphest.pkg.css' => '4845691a',
|
||||||
@@ -446,7 +446,7 @@ return array(
|
|||||||
'rsrc/js/application/uiexample/gesture-example.js' => '558829c2',
|
'rsrc/js/application/uiexample/gesture-example.js' => '558829c2',
|
||||||
'rsrc/js/application/uiexample/notification-example.js' => '8ce821c5',
|
'rsrc/js/application/uiexample/notification-example.js' => '8ce821c5',
|
||||||
'rsrc/js/core/Busy.js' => '59a7976a',
|
'rsrc/js/core/Busy.js' => '59a7976a',
|
||||||
'rsrc/js/core/DragAndDropFileUpload.js' => 'da044194',
|
'rsrc/js/core/DragAndDropFileUpload.js' => '81f182b5',
|
||||||
'rsrc/js/core/DraggableList.js' => '8905523d',
|
'rsrc/js/core/DraggableList.js' => '8905523d',
|
||||||
'rsrc/js/core/FileUpload.js' => '680ea2c8',
|
'rsrc/js/core/FileUpload.js' => '680ea2c8',
|
||||||
'rsrc/js/core/Hovercard.js' => '1bd28176',
|
'rsrc/js/core/Hovercard.js' => '1bd28176',
|
||||||
@@ -741,7 +741,7 @@ return array(
|
|||||||
'phabricator-core-css' => '5b3563c8',
|
'phabricator-core-css' => '5b3563c8',
|
||||||
'phabricator-countdown-css' => 'e7544472',
|
'phabricator-countdown-css' => 'e7544472',
|
||||||
'phabricator-dashboard-css' => 'eb458607',
|
'phabricator-dashboard-css' => 'eb458607',
|
||||||
'phabricator-drag-and-drop-file-upload' => 'da044194',
|
'phabricator-drag-and-drop-file-upload' => '81f182b5',
|
||||||
'phabricator-draggable-list' => '8905523d',
|
'phabricator-draggable-list' => '8905523d',
|
||||||
'phabricator-fatal-config-template-css' => '8e6c6fcd',
|
'phabricator-fatal-config-template-css' => '8e6c6fcd',
|
||||||
'phabricator-feed-css' => 'ecd4ec57',
|
'phabricator-feed-css' => 'ecd4ec57',
|
||||||
@@ -1451,6 +1451,14 @@ return array(
|
|||||||
'javelin-vector',
|
'javelin-vector',
|
||||||
'javelin-stratcom',
|
'javelin-stratcom',
|
||||||
),
|
),
|
||||||
|
'81f182b5' => array(
|
||||||
|
'javelin-install',
|
||||||
|
'javelin-util',
|
||||||
|
'javelin-request',
|
||||||
|
'javelin-dom',
|
||||||
|
'javelin-uri',
|
||||||
|
'phabricator-file-upload',
|
||||||
|
),
|
||||||
'834a1173' => array(
|
'834a1173' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-scrollbar',
|
'javelin-scrollbar',
|
||||||
@@ -1890,14 +1898,6 @@ return array(
|
|||||||
'javelin-util',
|
'javelin-util',
|
||||||
'phabricator-shaped-request',
|
'phabricator-shaped-request',
|
||||||
),
|
),
|
||||||
'da044194' => array(
|
|
||||||
'javelin-install',
|
|
||||||
'javelin-util',
|
|
||||||
'javelin-request',
|
|
||||||
'javelin-dom',
|
|
||||||
'javelin-uri',
|
|
||||||
'phabricator-file-upload',
|
|
||||||
),
|
|
||||||
'dbbf48b6' => array(
|
'dbbf48b6' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-stratcom',
|
'javelin-stratcom',
|
||||||
|
|||||||
@@ -107,13 +107,18 @@ JX.install('PhabricatorDragAndDropFileUpload', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this._node && !this._depth) {
|
if (!this._node) {
|
||||||
this._target = e.getNode(this._sigil);
|
var target = e.getNode(this._sigil);
|
||||||
|
if (target !== this._target) {
|
||||||
|
this._updateDepth(-this._depth);
|
||||||
|
this._target = target;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contains(this._getTarget(), e.getTarget())) {
|
if (contains(this._getTarget(), e.getTarget())) {
|
||||||
this._updateDepth(1);
|
this._updateDepth(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var on_dragleave = JX.bind(this, function(e) {
|
var on_dragleave = JX.bind(this, function(e) {
|
||||||
@@ -121,6 +126,10 @@ JX.install('PhabricatorDragAndDropFileUpload', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this._getTarget()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (contains(this._getTarget(), e.getTarget())) {
|
if (contains(this._getTarget(), e.getTarget())) {
|
||||||
this._updateDepth(-1);
|
this._updateDepth(-1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user