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 | |
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')
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkComponentPeer.java | 23 | ||||
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkContainerPeer.java | 26 |
2 files changed, 12 insertions, 37 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 diff --git a/gnu/java/awt/peer/gtk/GtkContainerPeer.java b/gnu/java/awt/peer/gtk/GtkContainerPeer.java index 37ed36131..23737b0b0 100644 --- a/gnu/java/awt/peer/gtk/GtkContainerPeer.java +++ b/gnu/java/awt/peer/gtk/GtkContainerPeer.java @@ -65,32 +65,6 @@ public class GtkContainerPeer extends GtkComponentPeer public void endValidate () { - Component parent = awtComponent.getParent (); - - // We only set our parent on the GTK side if our parent on the AWT - // side is not showing in the constuctor. Otherwise the gtk peer will - // be shown before we've had a chance to position and size it properly. - // So we set it here at the end of validation. - if ((parent != null && parent.isShowing()) - || (awtComponent instanceof Window - && ((Window) awtComponent).isShowing())) - { - Component[] components = ((Container) awtComponent).getComponents (); - int ncomponents = components.length; - - for (int i = 0; i < ncomponents; i++) - { - ComponentPeer peer = components[i].getPeer (); - - // Skip lightweight peers. - if (peer instanceof GtkComponentPeer) - ((GtkComponentPeer) peer).setParentAndBounds (); - } - - // GTK windows don't have parents. - if (!(awtComponent instanceof Window)) - setParentAndBounds (); - } } public Insets getInsets() |