diff options
author | Mark Wielaard <mark@klomp.org> | 2006-03-03 21:09:00 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2006-03-03 21:09:00 +0000 |
commit | 17a805c7f9e5666c6df3d16644a9a2776b3eb13a (patch) | |
tree | d6b6eee86e06831fe4600e4615ac716c274a754f /gnu/java/awt/peer/gtk/GtkComponentPeer.java | |
parent | 4e1c6cb49c19f3b42adaaf7c839b84b74dd7119a (diff) | |
download | classpath-17a805c7f9e5666c6df3d16644a9a2776b3eb13a.tar.gz |
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer):
Always call setParentAndBounds().
(setComponentBounds): Always call setBounds().
(setBounds): Call setVisible().
(setVisible): If no pixels are showing then don't make it visible.
* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): No need
to call setParentAndBounds() anymore.
Diffstat (limited to 'gnu/java/awt/peer/gtk/GtkComponentPeer.java')
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkComponentPeer.java | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/gnu/java/awt/peer/gtk/GtkComponentPeer.java index b48479bb2..821183927 100644 --- a/gnu/java/awt/peer/gtk/GtkComponentPeer.java +++ b/gnu/java/awt/peer/gtk/GtkComponentPeer.java @@ -145,12 +145,7 @@ public class GtkComponentPeer extends GtkGenericPeer Component parent = awtComponent.getParent (); - // Only set our parent on the GTK side if our parent on the AWT - // side is not showing. Otherwise the gtk peer will be shown - // before we've had a chance to position and size it properly. - if (awtComponent instanceof Window - || (parent != null && ! parent.isShowing ())) - setParentAndBounds (); + setParentAndBounds (); setNativeEventMask (); @@ -201,11 +196,6 @@ public class GtkComponentPeer extends GtkGenericPeer void setComponentBounds () { Rectangle bounds = awtComponent.getBounds (); - - if (bounds.x == 0 && bounds.y == 0 - && bounds.width == 0 && bounds.height == 0) - return; - setBounds (bounds.x, bounds.y, bounds.width, bounds.height); } @@ -487,6 +477,10 @@ public class GtkComponentPeer extends GtkGenericPeer } setNativeBounds (new_x, new_y, width, height); + + // If the height or width were (or are now) smaller than zero + // then we want to adjust the visibility. + setVisible(awtComponent.isVisible()); } void setCursor () @@ -537,6 +531,13 @@ public class GtkComponentPeer extends GtkGenericPeer public void setVisible (boolean b) { + // Only really set visible when component is bigger than zero pixels. + if (b) + { + Rectangle bounds = awtComponent.getBounds(); + b = (bounds.width > 0) && (bounds.height > 0); + } + if (Thread.currentThread() == GtkToolkit.mainThread) setVisibleNativeUnlocked (b); else |