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.

From-SVN: r76278
This commit is contained in:
David Jee 2004-01-21 14:39:15 +00:00 committed by David Jee
parent 2a2001bed5
commit 3f07b28898
2 changed files with 18 additions and 1 deletions

View file

@ -1633,8 +1633,18 @@ class LightweightDispatcher implements Serializable
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);