+2004-01-21 David Jee <djee@redhat.com>
+
+ * java/awt/Container.java
+ (LightweightDispatcher.handleEvent): Add an extra check to avoid
+ dispatching MOUSE_ENTERED event twice. Translate the point for
+ the mouse event target before dispatching the event.
+
2004-01-20 Jakub Jelinek <jakub@redhat.com>
* Makefile.am (lib_org_w3c_dom_la_LIBADD,
MouseEvent me = (MouseEvent) e;
acquireComponentForMouseEvent (me);
- if (mouseEventTarget != null)
+ // Avoid dispatching an ENTERED event twice
+ if (mouseEventTarget != null
+ && e.getID() != MouseEvent.MOUSE_ENTERED)
{
+ // Calculate point translation for the event target.
+ // We use absolute location on screen rather than relative
+ // location because the event target might be a nested child.
+ Point parentLocation = nativeContainer.getLocationOnScreen();
+ Point childLocation = mouseEventTarget.getLocationOnScreen();
+ me.translatePoint(parentLocation.x - childLocation.x,
+ parentLocation.y - childLocation.y);
+
Component oldSource = (Component) me.getSource ();
me.setSource (mouseEventTarget);
mouseEventTarget.dispatchEvent (me);