[jQuery] Event fix in Safari - cannot work

[jQuery] Event fix in Safari - cannot work

Hi,
I just had a look at the event fix. I think it cannot work for Safari,
here's how it is now: The fix function is called if the event argument
for handle is undefined:
event = event || jQuery.event.fix( window.event );
So jQuery.event.fix is only executed if event is undefined, but this is
only the case in IE. Thus the following lines in jQuery.event.fix are
never executed in Safari:
...
} else if(jQuery.browser.safari && event.target.nodeType == 3) {
// target is readonly, clone the event object
event = jQuery.extend({}, event);
// get parentnode from textnode
event.target = event.target.parentNode;
}
Should look like this:
event = jQuery.event.fix( event );
And the fix function:
fix: function(event) {
    // check IE
    if(!event) {
        // get real event from window.event
        event = window.event;
        // fix target property
        event.target = event.srcElement;
        // fix preventDefault and stopPropagation
        event.preventDefault = function() {
         this.returnValue = false;
     };
     event.stopPropagation = function() {
         this.cancelBubble = true;
     };
    // check safari and if target is a textnode
    } else if(jQuery.browser.safari && event.target.nodeType == 3) {
        // target is readonly, clone the event object
        event = jQuery.extend({}, event);
        // get parentnode from textnode
        event.target = event.target.parentNode;
    }
    return event;
}
Commit? Better idea anyone?
-- Klaus
_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/