From b9ed7924d981703f736a0a40051f42743090ba9c Mon Sep 17 00:00:00 2001 From: djee Date: Wed, 21 Jan 2004 14:39:15 +0000 Subject: 2004-01-21 David Jee * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76278 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/awt/Container.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'libjava/java/awt/Container.java') diff --git a/libjava/java/awt/Container.java b/libjava/java/awt/Container.java index caf1134935b..5d176beef77 100644 --- a/libjava/java/awt/Container.java +++ b/libjava/java/awt/Container.java @@ -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); -- cgit v1.2.3