From a1d69208bad175a27c7b50c27fdc10001563cd4d Mon Sep 17 00:00:00 2001 From: Hannah Methvin Date: Sun, 18 Oct 2015 12:36:43 -0400 Subject: [PATCH] Mouse: Don't stop propagation of mouseup Fixes #10818 --- tests/unit/draggable/core.js | 17 +++++++++++++++++ ui/widgets/draggable.js | 4 ++-- 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 ) { -- 2.39.5