aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorWill Holley <willholley@gmail.com>2013-05-21 15:19:14 +0100
committerMike Sherov <mike.sherov@gmail.com>2014-08-10 21:00:33 -0400
commit87081b855c5ded96039d16791a30ff0181fb5a9f (patch)
treead4b54fe579b37b51665fef8dd441104a4ea60a6 /ui
parentd434fdbcc2775be4d79c6bb56d3cf3362589fac9 (diff)
downloadjquery-ui-87081b855c5ded96039d16791a30ff0181fb5a9f.tar.gz
jquery-ui-87081b855c5ded96039d16791a30ff0181fb5a9f.zip
Droppable: only consider pointer location with tolerance "pointer"
Fixes #4977 Closes gh-991
Diffstat (limited to 'ui')
-rw-r--r--ui/droppable.js15
1 files changed, 6 insertions, 9 deletions
diff --git a/ui/droppable.js b/ui/droppable.js
index 826f46e58..fce8d9bd9 100644
--- a/ui/droppable.js
+++ b/ui/droppable.js
@@ -191,7 +191,7 @@ $.widget( "ui.droppable", {
!inst.options.disabled &&
inst.options.scope === draggable.options.scope &&
inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) &&
- $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance )
+ $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event )
) { childrenIntersection = true; return false; }
});
if ( childrenIntersection ) {
@@ -229,14 +229,13 @@ $.ui.intersect = (function() {
return ( x >= reference ) && ( x < ( reference + size ) );
}
- return function( draggable, droppable, toleranceMode ) {
+ return function( draggable, droppable, toleranceMode, event ) {
if ( !droppable.offset ) {
return false;
}
- var draggableLeft, draggableTop,
- x1 = ( draggable.positionAbs || draggable.position.absolute ).left,
+ var x1 = ( draggable.positionAbs || draggable.position.absolute ).left,
y1 = ( draggable.positionAbs || draggable.position.absolute ).top,
x2 = x1 + draggable.helperProportions.width,
y2 = y1 + draggable.helperProportions.height,
@@ -254,9 +253,7 @@ $.ui.intersect = (function() {
t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half
y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half
case "pointer":
- draggableLeft = ( ( draggable.positionAbs || draggable.position.absolute ).left + ( draggable.clickOffset || draggable.offset.click ).left );
- draggableTop = ( ( draggable.positionAbs || draggable.position.absolute ).top + ( draggable.clickOffset || draggable.offset.click ).top );
- return isOverAxis( draggableTop, t, droppable.proportions().height ) && isOverAxis( draggableLeft, l, droppable.proportions().width );
+ return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width );
case "touch":
return (
( y1 >= t && y1 <= b ) || // Top edge touching
@@ -326,7 +323,7 @@ $.ui.ddmanager = {
if ( !this.options ) {
return;
}
- if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance ) ) {
+ if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) {
dropped = this._drop.call( this, event ) || dropped;
}
@@ -363,7 +360,7 @@ $.ui.ddmanager = {
}
var parentInstance, scope, parent,
- intersects = $.ui.intersect( draggable, this, this.options.tolerance ),
+ intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ),
c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null );
if ( !c ) {
return;