r1575 - trunk/ui

r1575 - trunk/ui


Author: scott.gonzalez
Date: Fri Jan 9 06:28:39 2009
New Revision: 1575
Modified:
trunk/ui/ui.core.js
Log:
Widget factory: _trigger will now set event.result if the callback returns
a value. The created event is now always run through $.Event to reset
isDefaultPrevent(), isPropagationStopped(), isImmediatePropagationStopped().
Modified: trunk/ui/ui.core.js
==============================================================================
--- trunk/ui/ui.core.js    (original)
+++ trunk/ui/ui.core.js    Fri Jan 9 06:28:39 2009
@@ -370,13 +370,20 @@
            eventName = (type == this.widgetEventPrefix
                ? type : this.widgetEventPrefix + type);
-        event = event ? $.event.fix(event) : $.Event();
+        // event can be null, a hash, a native event, a fixed event
+        event = $.Event(event);
        event.type = eventName;
        this.element.trigger(event, data);
-
-        return !(callback && callback.call(this.element[0], event, data) ===
false
-            || event.isDefaultPrevented());
+        var callbackResult = callback
+            ? callback.call(this.element[0], event, data)
+            : undefined;
+        
+        event.result = callbackResult !== undefined
+            ? callbackResult
+            : event.result;
+        
+        return event.result !== false;
    }
};