From 52a1de5caadd9dd0665d4bf092f6061d9d3a3a8e Mon Sep 17 00:00:00 2001 From: Mike Sherov Date: Mon, 25 Aug 2014 10:28:39 -0400 Subject: [PATCH] Sortable: cancelHelperRemoval only considers helper, not placeholder Refs #9675 --- tests/unit/draggable/draggable_options.js | 2 +- ui/sortable.js | 22 ++++++---------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js index 46b80608c..6c4a59396 100644 --- a/tests/unit/draggable/draggable_options.js +++ b/tests/unit/draggable/draggable_options.js @@ -305,7 +305,7 @@ test( "connectToSortable, dragging clone into sortable", function() { sortable = $( "#sortable" ).sortable(), offsetSortable = sortable.offset(); - $( sortable ).one( "sortbeforestop", function( event, ui ) { + $( sortable ).one( "sort", function( event, ui ) { // http://bugs.jqueryui.com/ticket/8809 // Position issue when connected to sortable deepEqual( ui.helper.offset(), offsetSortable, "sortable offset is correct" ); diff --git a/ui/sortable.js b/ui/sortable.js index da4d13117..0207c8620 100644 --- a/ui/sortable.js +++ b/ui/sortable.js @@ -1253,18 +1253,6 @@ return $.widget("ui.sortable", $.ui.mouse, { } this.dragging = false; - if(this.cancelHelperRemoval) { - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - for (i=0; i < delayedTriggers.length; i++) { - delayedTriggers[i].call(this, event); - } //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return false; - } if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); @@ -1273,10 +1261,12 @@ return $.widget("ui.sortable", $.ui.mouse, { //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - if(this.helper[0] !== this.currentItem[0]) { - this.helper.remove(); + if ( !this.cancelHelperRemoval ) { + if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { + this.helper.remove(); + } + this.helper = null; } - this.helper = null; if(!noPropagation) { for (i=0; i < delayedTriggers.length; i++) { @@ -1286,7 +1276,7 @@ return $.widget("ui.sortable", $.ui.mouse, { } this.fromOutside = false; - return true; + return !this.cancelHelperRemoval; }, -- 2.39.5