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
-~----------~----~----~----~------~----~------~--~---

Reply via email to