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:
parent
2a2001bed5
commit
3f07b28898
2 changed files with 18 additions and 1 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue