Author: j...@google.com Date: Tue Jun 30 08:39:59 2009 New Revision: 5643 Modified: releases/1.6/user/src/com/google/gwt/dom/client/DOMImplMozilla.java releases/1.6/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java
Log: Merging r5641 from trunk (Fix for Firefox 3.5 Event.relatedTarget bug). Modified: releases/1.6/user/src/com/google/gwt/dom/client/DOMImplMozilla.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/dom/client/DOMImplMozilla.java (original) +++ releases/1.6/user/src/com/google/gwt/dom/client/DOMImplMozilla.java Tue Jun 30 08:39:59 2009 @@ -38,6 +38,20 @@ }-*/; @Override + public native EventTarget eventGetRelatedTarget(NativeEvent evt) /*-{ + // Hack around Mozilla bug 497780 (relatedTarget sometimes returns XUL + // elements). Trying to access relatedTarget.nodeName will throw an + // exception if it's a XUL element. + var relatedTarget = evt.relatedTarget; + try { + var nodeName = relatedTarget.nodeName; + return relatedTarget; + } catch (e) { + return null; + } + }-*/; + + @Override public int getAbsoluteLeft(Element elem) { return getAbsoluteLeftImpl(elem.getOwnerDocument().getViewportElement(), elem); Modified: releases/1.6/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java (original) +++ releases/1.6/user/src/com/google/gwt/user/client/impl/DOMImplStandard.java Tue Jun 30 08:39:59 2009 @@ -39,22 +39,30 @@ private static JavaScriptObject dispatchEvent; @Override - public native Element eventGetFromElement(Event evt) /*-{ - if (evt.type == "mouseover") - return evt.relatedTarget; - if (evt.type == "mouseout") - return evt.target; + public Element eventGetFromElement(Event evt) { + if (evt.getType().equals("mouseover")) { + return evt.getRelatedTarget().cast(); + } + + if (evt.getType().equals("mouseout")) { + return evt.getTarget().cast(); + } + return null; - }-*/; + } @Override - public native Element eventGetToElement(Event evt) /*-{ - if (evt.type == "mouseover") - return evt.target; - if (evt.type == "mouseout") - return evt.relatedTarget; + public Element eventGetToElement(Event evt) { + if (evt.getType().equals("mouseover")) { + return evt.getTarget().cast(); + } + + if (evt.getType().equals("mouseout")) { + return evt.getRelatedTarget().cast(); + } + return null; - }-*/; + } @Override public native Element getChild(Element elem, int index) /*-{ --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---