diff options
author | Hannah Methvin <hannahmethvin@gmail.com> | 2015-10-18 12:36:43 -0400 |
---|---|---|
committer | Hannah Methvin <hannahmethvin@gmail.com> | 2015-10-18 12:36:43 -0400 |
commit | a1d69208bad175a27c7b50c27fdc10001563cd4d (patch) | |
tree | c69626ed468130e03443d6ac32d856b54fd31a2e | |
parent | ac81e39237781f72670f19b52eacceada48f76ef (diff) | |
download | jquery-ui-a1d69208bad175a27c7b50c27fdc10001563cd4d.tar.gz jquery-ui-a1d69208bad175a27c7b50c27fdc10001563cd4d.zip |
Mouse: Don't stop propagation of mouseup
Fixes #10818
-rw-r--r-- | tests/unit/draggable/core.js | 17 | ||||
-rw-r--r-- | ui/widgets/draggable.js | 4 | ||||
-rw-r--r-- | ui/widgets/mouse.js | 2 |
3 files changed, 20 insertions, 3 deletions
diff --git a/tests/unit/draggable/core.js b/tests/unit/draggable/core.js index 8bc751e0e..9efe9d3f1 100644 --- a/tests/unit/draggable/core.js +++ b/tests/unit/draggable/core.js @@ -345,4 +345,21 @@ test( "ui-draggable-handle managed correctly in nested draggables", function( as assert.hasClasses( child, "ui-draggable-handle", "child retains class name on destroy" ); } ); +test( "does not stop propagation to window", function( assert ) { + expect( 1 ); + var element = $( "#draggable1" ).draggable(); + + var handler = function() { + assert.ok( true, "mouseup propagates to window" ); + }; + $( window ).on( "mouseup", handler ); + + element.simulate( "drag", { + dx: 10, + dy: 10 + } ); + + $( window ).off( "mouseup", handler ); +} ); + } ); diff --git a/ui/widgets/draggable.js b/ui/widgets/draggable.js index f61c38ce0..b459afe00 100644 --- a/ui/widgets/draggable.js +++ b/ui/widgets/draggable.js @@ -255,7 +255,7 @@ $.widget( "ui.draggable", $.ui.mouse, { if ( !noPropagation ) { var ui = this._uiHash(); if ( this._trigger( "drag", event, ui ) === false ) { - this._mouseUp( {} ); + this._mouseUp( new $.Event( "mouseup", event ) ); return false; } this.position = ui.position; @@ -322,7 +322,7 @@ $.widget( "ui.draggable", $.ui.mouse, { cancel: function() { if ( this.helper.is( ".ui-draggable-dragging" ) ) { - this._mouseUp( {} ); + this._mouseUp( new $.Event( "mouseup", { target: this.element[ 0 ] } ) ); } else { this._clear(); } diff --git a/ui/widgets/mouse.js b/ui/widgets/mouse.js index 938d0f4b7..1d8458b27 100644 --- a/ui/widgets/mouse.js +++ b/ui/widgets/mouse.js @@ -189,7 +189,7 @@ return $.widget( "ui.mouse", { } mouseHandled = false; - return false; + event.preventDefault(); }, _mouseDistanceMet: function( event ) { |