From 695358983e58c9f3d0c6b755ce89fa92adbea0ea Mon Sep 17 00:00:00 2001 From: TJ VanToll Date: Fri, 28 Dec 2012 22:17:50 -0500 Subject: [PATCH] Selectable: Account for scrolling on the helper's initial position. Fixed #8915 - Selectable: Lasso offset issue with scrolling. --- tests/unit/selectable/selectable_events.js | 28 ++++++++++++++++++++++ ui/jquery.ui.selectable.js | 4 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/tests/unit/selectable/selectable_events.js b/tests/unit/selectable/selectable_events.js index 984fd1862..f933d3890 100644 --- a/tests/unit/selectable/selectable_events.js +++ b/tests/unit/selectable/selectable_events.js @@ -35,4 +35,32 @@ test( "stop", function() { }); }); +test( "mousedown: initial position of helper", function() { + expect( 2 ); + + var contentToForceScroll, helper, + element = $("#selectable1").selectable(); + + contentToForceScroll = $("
").css({ + height: "10000px", + width: "10000px" + }); + + contentToForceScroll.appendTo("body"); + $( window ).scrollTop( 1 ).scrollLeft( 1 ); + element.simulate( "mousedown", { + clientX: 10, + clientY: 10 + }); + + helper = $(".ui-selectable-helper"); + equal( helper.css("top"), "11px", "Scroll top should be accounted for." ); + equal( helper.css("left"), "11px", "Scroll left should be accounted for." ); + + // Cleanup + element.simulate("mouseup"); + contentToForceScroll.remove(); + $( window ).scrollTop( 0 ).scrollLeft( 0 ); +}); + })( jQuery ); diff --git a/ui/jquery.ui.selectable.js b/ui/jquery.ui.selectable.js index 32152291b..8e6d03c1f 100644 --- a/ui/jquery.ui.selectable.js +++ b/ui/jquery.ui.selectable.js @@ -88,8 +88,8 @@ $.widget("ui.selectable", $.ui.mouse, { $(options.appendTo).append(this.helper); // position helper (lasso) this.helper.css({ - "left": event.clientX, - "top": event.clientY, + "left": event.pageX, + "top": event.pageY, "width": 0, "height": 0 }); -- 2.39.5