Skip to content
Permalink
Browse files

Widget factory: Fixed event triggering (again).

Draggable: To modify the position during drag, you now set ui.position instead of returning new coords.
  • Loading branch information
scottgonzalez committed Jan 15, 2009
1 parent 3ead714 commit 41ed54aaf6aba6cf06c0c5a753d6e8e8673d1734
Showing with 13 additions and 16 deletions.
  1. +4 −11 ui/ui.core.js
  2. +9 −5 ui/ui.draggable.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());
}
};

@@ -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: {},

0 comments on commit 41ed54a

Please sign in to comment.
You can’t perform that action at this time.