aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTJ VanToll <tj.vantoll@gmail.com>2012-12-28 22:17:50 -0500
committerScott González <scott.gonzalez@gmail.com>2013-01-01 08:22:18 -0500
commit695358983e58c9f3d0c6b755ce89fa92adbea0ea (patch)
tree354185b9678f21573bb582305814a5e09471b4ee
parent2620be85e97d638554ad1cc0fba376848abb205b (diff)
downloadjquery-ui-695358983e58c9f3d0c6b755ce89fa92adbea0ea.tar.gz
jquery-ui-695358983e58c9f3d0c6b755ce89fa92adbea0ea.zip
Selectable: Account for scrolling on the helper's initial position. Fixed #8915 - Selectable: Lasso offset issue with scrolling.
-rw-r--r--tests/unit/selectable/selectable_events.js28
-rw-r--r--ui/jquery.ui.selectable.js4
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 = $("<div>").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
});