]> source.dussan.org Git - jquery-ui.git/commitdiff
Interactions: Fixed an off-by-one error in isOverAxis.
authorDavid Hansen <hansede@gmail.com>
Wed, 23 Jan 2013 18:46:10 +0000 (11:46 -0700)
committerMike Sherov <mike.sherov@gmail.com>
Tue, 21 May 2013 01:30:16 +0000 (21:30 -0400)
tests/unit/droppable/droppable_methods.js
ui/jquery.ui.droppable.js
ui/jquery.ui.sortable.js

index f7682d262e4da804af311f7ce215a8c200af3640..ce3d8f72f721aa634e583350f67786aa0e0a85be 100644 (file)
@@ -88,4 +88,33 @@ test( "disable", function() {
        equal( actual, expected, "disable is chainable" );
 });
 
-})(jQuery);
+test( "intersect", function() {
+       expect( 8 );
+
+       var actual, data,
+               draggable = $( "<div />" ).appendTo( "#qunit-fixture" ).css({ width: 10, height: 10, position: "absolute" }).draggable(),
+               droppable = $( "<div />" ).appendTo( "#qunit-fixture" ).css({ width: 10, height: 10, position: "absolute", top: 5, left: 5 }).droppable(),
+               dataset = [
+                       [ -1, -1, false, "too far up and left" ],
+                       [ -1, 0, false, "too far left" ],
+                       [ 0, -1, false, "too far up" ],
+                       [ 0, 0, true, "top left corner" ],
+                       [ 9, 9, true, "bottom right corner" ],
+                       [ 10, 9, false, "too far right" ],
+                       [ 9, 10, false, "too far down" ],
+                       [ 10, 10, false, "too far down and right" ]
+               ],
+               x = 0;
+
+       for ( ; x < dataset.length; x++ ) {
+               data = dataset[ x ];
+               $( draggable ).simulate( "drag", {
+                       dx: ( data[ 0 ] - $( draggable ).position().left ),
+                       dy: ( data[ 1 ] - $( draggable ).position().top )
+               });
+               actual = $.ui.intersect( $( draggable ).draggable( "instance" ), $( droppable ).droppable( "instance" ), "pointer" );
+               equal( actual, data[ 2 ], data[ 3 ] );
+       }
+});
+
+})( jQuery );
index 6bc4b594de528292bf0bd89670ceb785ed389c2b..808009dc124268d703e1d59d4d0463ae6f6e52e4 100644 (file)
@@ -17,7 +17,7 @@
 (function( $, undefined ) {
 
 function isOverAxis( x, reference, size ) {
-       return ( x > reference ) && ( x < ( reference + size ) );
+       return ( x >= reference ) && ( x < ( reference + size ) );
 }
 
 $.widget("ui.droppable", {
index c7794f06a40f4511b95cff9587088bc9ed26baa5..9c7bf446cda546e48147edaf8d833a80f3b5fec1 100644 (file)
@@ -16,7 +16,7 @@
 (function( $, undefined ) {
 
 function isOverAxis( x, reference, size ) {
-       return ( x > reference ) && ( x < ( reference + size ) );
+       return ( x >= reference ) && ( x < ( reference + size ) );
 }
 
 function isFloating(item) {