diff options
Diffstat (limited to 'libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java')
-rw-r--r-- | libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java index daaa143d03b..88733b92f8c 100644 --- a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java @@ -1,5 +1,5 @@ /* GLightweightPeer.java -- - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,11 +54,14 @@ import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.Toolkit; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.awt.event.PaintEvent; import java.awt.image.ColorModel; import java.awt.image.ImageObserver; import java.awt.image.ImageProducer; import java.awt.image.VolatileImage; +import java.awt.peer.ComponentPeer; import java.awt.peer.ContainerPeer; import java.awt.peer.LightweightPeer; @@ -79,7 +82,7 @@ import java.awt.peer.LightweightPeer; * Lightweight components are painted directly onto their parent * containers through an Image object provided by the toolkit. */ -public class GLightweightPeer +public class GLightweightPeer implements LightweightPeer, ContainerPeer { private Component comp; @@ -247,7 +250,25 @@ public class GLightweightPeer public void setBounds(int x, int y, int width, int height) {} - public void setCursor(Cursor cursor) {} + /** + * Sets the cursor on the heavy-weight parent peer. + * Called by the MouseListener on mouse enter. + */ + public void setCursor(Cursor cursor) + { + Component p = comp.getParent(); + while (p != null && p.isLightweight()) + p = p.getParent(); + + if (p != null) + { + // Don't actually change the cursor of the component + // otherwise other childs inherit this cursor. + ComponentPeer peer = p.getPeer(); + if (peer != null) + peer.setCursor(cursor); + } + } public void setEnabled(boolean enabled) {} |