This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gui] [PATCH] Fix FileDialog's initial size
- From: David Jee <djee at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Wed, 21 Jul 2004 12:59:49 -0400
- Subject: [gui] [PATCH] Fix FileDialog's initial size
Hello,
I committed the following patch to the java-gui-branch. It fixes
FileDialog's initial size, which was too small. Previously, we set the
initial size of the FileDialog peer by using its "natural" requisition.
However, this caused the dialog to have the absolute minimum size
possible, which doesn't give much room to browse and select files.
The patch sets the dialog's initial size by calling
gtk_window_get_default_size() on the GtkFileChooserDialog widget. This
produces a better initial size with plenty of space.
-David Jee
2004-07-21 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java
(GtkComponentPeer): Use gtkWidgetGetPreferredDimensions() for
setting the size of GtkFileDialogPeers.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(gtkWidgetGetPreferredDimensions): For widgets extending GtkWindow,
use their default sizes rather than their natural requisitions.
Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.16.2.14
diff -u -r1.16.2.14 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 1 Jul 2004 18:31:31 -0000 1.16.2.14
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 21 Jul 2004 16:34:42 -0000
@@ -136,7 +136,7 @@
&& awtComponent.getWidth() == 0)
{
int[] dims = new int[2];
- gtkWidgetGetDimensions(dims);
+ gtkWidgetGetPreferredDimensions(dims);
((GtkFileDialogPeer) this).setBoundsCallback((Window)awtComponent,
awtComponent.getX(),
awtComponent.getY(),
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v
retrieving revision 1.15.2.18
diff -u -r1.15.2.18 gnu_java_awt_peer_gtk_GtkComponentPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 1 Jul 2004 18:31:31 -0000 1.15.2.18
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 21 Jul 2004 16:34:43 -0000
@@ -680,19 +680,33 @@
gdk_threads_enter ();
- /* Save the widget's current size request. */
- gtk_widget_size_request (GTK_WIDGET (ptr), ¤t_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), ¤t_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 ();