summaryrefslogtreecommitdiff
path: root/gnu/java/awt/peer/gtk/GtkComponentPeer.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2006-03-03 21:09:00 +0000
committerMark Wielaard <mark@klomp.org>2006-03-03 21:09:00 +0000
commit17a805c7f9e5666c6df3d16644a9a2776b3eb13a (patch)
treed6b6eee86e06831fe4600e4615ac716c274a754f /gnu/java/awt/peer/gtk/GtkComponentPeer.java
parent4e1c6cb49c19f3b42adaaf7c839b84b74dd7119a (diff)
downloadclasspath-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.java23
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