aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/ui.sortable.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/ui/ui.sortable.js b/ui/ui.sortable.js
index ed9f4198c..d2a185a15 100644
--- a/ui/ui.sortable.js
+++ b/ui/ui.sortable.js
@@ -45,7 +45,7 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
},
plugins: {},
- ui: function(inst) {
+ _ui: function(inst) {
var self = inst || this;
return {
helper: self.helper,
@@ -55,14 +55,16 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
options: this.options,
element: this.element,
item: self.currentItem,
- sender: inst ? inst.element : null,
- cancel: function() { self.cancel(); }
+ sender: inst ? inst.element : null
};
},
cancel: function() {
if(this.dragging) {
+
+ this._mouseUp();
+
if(this.options.helper == "original")
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
else
@@ -76,6 +78,7 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
this.containers[i].containerCache.over = 0;
}
}
+
}
//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
@@ -100,8 +103,8 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
},
_propagate: function(n,e,inst, noPropagation) {
- $.ui.plugin.call(this, n, [e, this.ui(inst)]);
- if(!noPropagation) this.element.triggerHandler(n == "sort" ? n : "sort"+n, [e, this.ui(inst)], this.options[n]);
+ $.ui.plugin.call(this, n, [e, this._ui(inst)]);
+ if(!noPropagation) this.element.triggerHandler(n == "sort" ? n : "sort"+n, [e, this._ui(inst)], this.options[n]);
},
serialize: function(o) {
@@ -699,7 +702,7 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
}
//Call the internal plugins
- $.ui.plugin.call(this, "sort", [e, this.ui()]);
+ $.ui.plugin.call(this, "sort", [e, this._ui()]);
//Regenerate the absolute position used for position checks
this.positionAbs = this._convertPositionTo("absolute");
@@ -738,7 +741,7 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
if($.ui.ddmanager) $.ui.ddmanager.drag(this, e);
//Call callbacks
- this.element.triggerHandler("sort", [e, this.ui()], this.options["sort"]);
+ this.element.triggerHandler("sort", [e, this._ui()], this.options["sort"]);
this.lastPositionAbs = this.positionAbs;
@@ -766,6 +769,8 @@ $.widget("ui.sortable", $.extend({}, $.ui.mouse, {
_mouseStop: function(e, noPropagation) {
+ if(!e) return;
+
//If we are using droppables, inform the manager about the drop
if ($.ui.ddmanager && !this.options.dropBehaviour)
$.ui.ddmanager.drop(this, e);