From 56bba8cf57d0aa75d0266486595efe0d070af0b7 Mon Sep 17 00:00:00 2001 From: Hans Boehm Date: Wed, 19 Feb 2003 00:35:35 +0000 Subject: XToolkit.java (getFontMetrics): initialize if necessary. 2003-02-18 Hans Boehm * gnu/awt/xlib/XToolkit.java (getFontMetrics): initialize if necessary. * gnu/java/awt/peer/gtk/GtkButtonPeer.java, gnu/java/awt/peer/gtk/GtkTextAreaPeer.java, gnu/java/awt/peer/gtk/GtkTextFieldPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c (setFont, gtkSetFont): add. gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): Propagate font to peer. (setFont): add FIXME comment. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c (gtkTextGetSize): fix height, width computation. * gnu/java/awt/peer/gtk/GtkFontPeer.java (GtkFontPeer): Make X font name a bit less bogus. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c (post_adjustment_event): Pass on GTK_SCROLL_NONE. * java/awt/Scrollbar.java (setValues): Fix visibleAmount range check. (processAdjustmentEvent): Adjust value. * java/awt/FlowLayout.java (layoutContainer) Fix 2 indexing and one logic errors. * java/awt/Component.java (setVisible, show, hide): Call show and hide methods in subclasses. (getPreferredSize): don't set prefSize before we have peer. * java/awt/TextArea.java, java/awt/TextField.java (getPreferredSize): Guess (0,0) if we don't have peer. From-SVN: r63077 --- libjava/java/awt/Component.java | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'libjava/java/awt/Component.java') diff --git a/libjava/java/awt/Component.java b/libjava/java/awt/Component.java index d61db055f56..88f91810dc0 100644 --- a/libjava/java/awt/Component.java +++ b/libjava/java/awt/Component.java @@ -844,9 +844,10 @@ public abstract class Component // Inspection by subclassing shows that Sun's implementation calls // show(boolean) which then calls show() or hide(). It is the show() // method that is overriden in subclasses like Window. - if (peer != null) - peer.setVisible(b); - this.visible = b; + if (b) + show(); + else + hide(); } /** @@ -856,7 +857,9 @@ public abstract class Component */ public void show() { - setVisible(true); + if (peer != null) + peer.setVisible(true); + this.visible = true; } /** @@ -877,7 +880,9 @@ public abstract class Component */ public void hide() { - setVisible(false); + if (peer != null) + peer.setVisible(false); + this.visible = false; } /** @@ -1448,8 +1453,10 @@ public abstract class Component public Dimension getPreferredSize() { if (prefSize == null) - prefSize = (peer != null ? peer.getPreferredSize() - : new Dimension(width, height)); + if (peer == null) + return new Dimension(width, height); + else + prefSize = peer.getPreferredSize(); return prefSize; } -- cgit v1.2.3