diff --git a/ui/ui.core.js b/ui/ui.core.js index 4afd2066f..c77e99999 100644 --- a/ui/ui.core.js +++ b/ui/ui.core.js @@ -370,20 +370,13 @@ $.widget.prototype = { eventName = (type == this.widgetEventPrefix ? type : this.widgetEventPrefix + type); - // event can be null, a hash, a native event, a fixed event - event = event ? $.extend(event, $.Event()) : $.Event(); + event = $.Event(event); event.type = eventName; this.element.trigger(event, data); - var callbackResult = callback - ? callback.call(this.element[0], event, data) - : undefined; - - event.result = callbackResult !== undefined - ? callbackResult - : event.result; - - return event.result !== false; + + return !(callback && callback.call(this.element[0], event, data) === false + || event.isDefaultPrevented()); } }; diff --git a/ui/ui.draggable.js b/ui/ui.draggable.js index 8eb60b56c..15d6cf440 100644 --- a/ui/ui.draggable.js +++ b/ui/ui.draggable.js @@ -125,7 +125,11 @@ $.widget("ui.draggable", $.extend({}, $.ui.mouse, { this.positionAbs = this._convertPositionTo("absolute"); //Call plugins and callbacks and use the resulting position if something is returned - if(!noPropagation) this.position = this._trigger("drag", event) || this.position; + if (!noPropagation) { + var ui = this._uiHash(); + this._trigger('drag', event, ui); + this.position = ui.position; + } if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; @@ -368,11 +372,11 @@ $.widget("ui.draggable", $.extend({}, $.ui.mouse, { // From now on bulk stuff - mainly helpers - _trigger: function(type, event) { - $.ui.plugin.call(this, type, [event, this._uiHash()]); + _trigger: function(type, event, ui) { + ui = ui || this._uiHash(); + $.ui.plugin.call(this, type, [event, ui]); if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins - $.widget.prototype._trigger.call(this, type, event, this._uiHash()); - return event.returnValue; + return $.widget.prototype._trigger.call(this, type, event, ui); }, plugins: {},