Permalink
Browse files

Droppable: Account for draggable margins when detecting hover

Fixes #6876
  • Loading branch information...
mikesherov committed Aug 13, 2014
1 parent 98b7a7d commit 4dad6bb99dae280108338c040d016f795d0da328
Showing with 53 additions and 4 deletions.
  1. +51 −2 tests/unit/droppable/droppable_options.js
  2. +2 −2 ui/droppable.js
@@ -89,11 +89,60 @@ test( "hoverClass", function() {
test( "tolerance, fit", function() {
ok(false, 'missing test - untested code is broken code');
});
*/
test( "tolerance, intersect", function() {
ok(false, 'missing test - untested code is broken code');
expect( 2 );
var draggable, droppable,
dataset = [
[ 0, 0, false, "too far up and left" ],
[ 6, 0, false, "too far up" ],
[ 0, 6, false, "too far left" ],
[ 6, 6, true, "top left corner" ],
[ 14, 14, true, "bottom right corner" ],
[ 15, 6, false, "too far right" ],
[ 6, 15, false, "too far down" ],
[ 15, 15, false, "too far down and right" ]
];
draggable = $( "<div />" )
.appendTo( "#qunit-fixture" )
.css({
width: 10,
height: 10,
position: "absolute",
// http://bugs.jqueryui.com/ticket/6876
// Droppable: droppable region is offset by draggables margin
marginTop: 3,
marginLeft: 3
})
.draggable();
droppable = $( "<div />" )
.appendTo( "#qunit-fixture" )
.css({ width: 10, height: 10, position: "absolute", top: 13, left: 13 })
.droppable({ tolerance: "intersect" });
$.each( dataset, function() {
var data = this;
draggable.css({
top: 0,
left: 0
});
droppable.unbind( "drop" ).bind( "drop", function() {
equal( true, data[ 2 ], data[ 3 ] );
});
$( draggable ).simulate( "drag", {
dx: data[ 0 ],
dy: data[ 1 ]
});
});
});
*/
test( "tolerance, pointer", function() {
expect( 3 );
View
@@ -235,8 +235,8 @@ $.ui.intersect = (function() {
return false;
}
var x1 = ( draggable.positionAbs || draggable.position.absolute ).left,
y1 = ( draggable.positionAbs || draggable.position.absolute ).top,
var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left,
y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top,
x2 = x1 + draggable.helperProportions.width,
y2 = y1 + draggable.helperProportions.height,
l = droppable.offset.left,

0 comments on commit 4dad6bb

Please sign in to comment.