Reviewers: jlabanca,

Description:
GWT issue:
http://code.google.com/p/google-web-toolkit/issues/detail?id=3189&q=owner:ecc%20started

Please review this at http://gwt-code-reviews.appspot.com/810

Affected files:
   user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
   user/src/com/google/gwt/user/client/ui/Widget.java


Index: user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
===================================================================
--- user/src/com/google/gwt/user/client/ui/ListenerWrapper.java (revision  
4300)
+++ user/src/com/google/gwt/user/client/ui/ListenerWrapper.java (working  
copy)
@@ -287,23 +287,11 @@
      }

      public void onMouseOut(MouseOutEvent event) {
-      // Only fire the mouseLeave event if it's actually leaving this
-      // widget.
-      Element to = event.getToElement();
-      Widget source = source(event);
-      if (to == null || !source.getElement().isOrHasChild(to)) {
-        listener.onMouseLeave(source(event));
-      }
+      listener.onMouseLeave(source(event));
      }

      public void onMouseOver(MouseOverEvent event) {
-      // Only fire the mouseEnter event if it's coming from outside this
-      // widget.
-      Element from = event.getFromElement();
-      Widget source = source(event);
-      if (from == null || !source.getElement().isOrHasChild(from)) {
-        listener.onMouseEnter(source(event));
-      }
+      listener.onMouseEnter(source(event));
      }

      public void onMouseUp(MouseUpEvent event) {
Index: user/src/com/google/gwt/user/client/ui/Widget.java
===================================================================
--- user/src/com/google/gwt/user/client/ui/Widget.java  (revision 4298)
+++ user/src/com/google/gwt/user/client/ui/Widget.java  (working copy)
@@ -15,6 +15,7 @@
   */
  package com.google.gwt.user.client.ui;

+import com.google.gwt.dom.client.Element;
  import com.google.gwt.event.dom.client.DomEvent;
  import com.google.gwt.event.logical.shared.HasHandlers;
  import com.google.gwt.event.shared.EventHandler;
@@ -88,8 +89,25 @@
      return handlerManager != null && handlerManager.isEventHandled(type);
    }

-  public void onBrowserEvent(Event nativeEvent) {
-    DomEvent.fireNativeEvent(nativeEvent, handlerManager);
+  public void onBrowserEvent(Event event) {
+    switch (DOM.eventGetType(event)) {
+      case Event.ONMOUSEOVER:
+        // Only fire the mouseEnter event if it's coming from outside this
+        // widget.
+        Element from = event.getFromElement();
+        if (from != null && getElement().isOrHasChild(from)) {
+          return;
+        }
+        break;
+      case Event.ONMOUSEOUT:
+        // Only fire the mouseLeave event if it's actually leaving this
+        // widget.
+        Element to = event.getToElement();
+        if (to != null && getElement().isOrHasChild(to)) {
+          return;
+        }
+    }
+    DomEvent.fireNativeEvent(event, handlerManager);
    }

    /**



--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to