classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: Fix FileDialog's initial size


From: Mark Wielaard
Subject: [cp-patches] FYI: Fix FileDialog's initial size
Date: Sat, 31 Jul 2004 23:26:12 +0200

Hi all,

This imports another patch from the libgcj gui branch for making sure
that GtkWindows get their natural sizes. This produces a better initial
size with plenty of space for FileDialogs.

2004-07-31  David Jee  <address@hidden>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
        (gtkWidgetGetPreferredDimensions): For widgets extending GtkWindow,
        use their default sizes rather than their natural requisitions.

Committed.

Cheers,

Mark

Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v
retrieving revision 1.35
diff -u -r1.35 gnu_java_awt_peer_gtk_GtkComponentPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c        31 Jul
2004 21:15:06 -0000     1.35
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c        31 Jul
2004 21:23:23 -0000
@@ -737,19 +737,33 @@
 
   gdk_threads_enter ();
 
-  /* Save the widget's current size request. */
-  gtk_widget_size_request (GTK_WIDGET (ptr), &current_req);
+  /* Widgets that extend GtkWindow such as GtkFileChooserDialog may
have
+     a default size.  These values seem more useful then the natural
+     requisition values, particularly for GtkFileChooserDialog. */
+  if (GTK_IS_WINDOW (ptr))
+    {
+      gint width, height;
+      gtk_window_get_default_size (GTK_WINDOW (ptr), &width, &height);
+
+      dims[0] = width;
+      dims[1] = height;
+    }
+  else
+    {
+      /* Save the widget's current size request. */
+      gtk_widget_size_request (GTK_WIDGET (ptr), &current_req);
 
-  /* Get the widget's "natural" size request. */
-  gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1);
-  gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req);
-
-  /* Reset the widget's size request. */
-  gtk_widget_set_size_request (GTK_WIDGET (ptr),
-                              current_req.width, current_req.height);
+      /* Get the widget's "natural" size request. */
+      gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1);
+      gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req);
+
+      /* Reset the widget's size request. */
+      gtk_widget_set_size_request (GTK_WIDGET (ptr),
+                                  current_req.width, current_req.height);
 
-  dims[0] = natural_req.width;
-  dims[1] = natural_req.height;
+      dims[0] = natural_req.width;
+      dims[1] = natural_req.height;
+    }
 
   gdk_threads_leave ();
 

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]