The patch below, taken from gtk svn, fixes this annoying problem, which
is described further here:
http://bugzilla.gnome.org/show_bug.cgi?id=420285

It was reported to occur with several window managers (cwm, twm, fluxbox,
ratpoison, ...) and any gtk application which has file choosers, e.g. the
'save as' dialog, and so on.

It seems to work fine here, but feel free to give it a try.

Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/gtk+2/Makefile,v
retrieving revision 1.50
diff -u -r1.50 Makefile
--- Makefile    12 May 2007 20:24:56 -0000      1.50
+++ Makefile    22 May 2007 16:15:48 -0000
@@ -7,7 +7,7 @@
 
 VERSION=                       2.10.12
 DISTNAME=                      gtk+-${VERSION}
-PKGNAME-main=                  gtk+2-${VERSION}
+PKGNAME-main=                  gtk+2-${VERSION}p0
 PKGNAME-docs=                  gtk+2-docs-${VERSION}
 SHARED_LIBS += gdk_pixbuf-2.0       1000.12  # .1000.12
 SHARED_LIBS += gdk-x11-2.0          1000.12  # .1000.12
Index: patches/patch-configure
===================================================================
RCS file: /cvs/ports/x11/gtk+2/patches/patch-configure,v
retrieving revision 1.14
diff -u -r1.14 patch-configure
--- patches/patch-configure     12 May 2007 20:24:56 -0000      1.14
+++ patches/patch-configure     22 May 2007 16:15:48 -0000
@@ -1,7 +1,7 @@
 $OpenBSD: patch-configure,v 1.14 2007/05/12 20:24:56 jasper Exp $
---- configure.orig     Sat May 12 16:41:09 2007
-+++ configure  Sat May 12 16:41:50 2007
-@@ -34215,7 +34215,9 @@
+--- configure.orig     Wed May  2 18:28:50 2007
++++ configure  Tue May 22 17:53:30 2007
+@@ -34215,7 +34215,9 @@ _ACEOF
  
  fi
  
Index: patches/patch-gtk_gtkfilechooserdefault_c
===================================================================
RCS file: patches/patch-gtk_gtkfilechooserdefault_c
diff -N patches/patch-gtk_gtkfilechooserdefault_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-gtk_gtkfilechooserdefault_c   22 May 2007 16:15:48 -0000
@@ -0,0 +1,220 @@
+$OpenBSD$
+--- gtk/gtkfilechooserdefault.c.orig   Wed May  2 18:26:59 2007
++++ gtk/gtkfilechooserdefault.c        Tue May 22 17:56:16 2007
+@@ -272,6 +272,8 @@ static void     gtk_file_chooser_default_style_set    
+                                                        GtkStyle              
*previous_style);
+ static void     gtk_file_chooser_default_screen_changed (GtkWidget            
 *widget,
+                                                        GdkScreen             
*previous_screen);
++static void     gtk_file_chooser_default_size_allocate  (GtkWidget            
 *widget,
++                                                       GtkAllocation         
*allocation);
+ 
+ static gboolean       gtk_file_chooser_default_set_current_folder        
(GtkFileChooser    *chooser,
+                                                                           
const GtkFilePath *path,
+@@ -310,9 +312,7 @@ static GSList *       gtk_file_chooser_default_list_sh
+ static void           gtk_file_chooser_default_get_default_size       
(GtkFileChooserEmbed *chooser_embed,
+                                                                      gint     
           *default_width,
+                                                                      gint     
           *default_height);
+-static void           gtk_file_chooser_default_get_resizable_hints    
(GtkFileChooserEmbed *chooser_embed,
+-                                                                     gboolean 
           *resize_horizontally,
+-                                                                     gboolean 
           *resize_vertically);
++static gboolean       gtk_file_chooser_default_get_resizable          
(GtkFileChooserEmbed *chooser_embed);
+ static gboolean       gtk_file_chooser_default_should_respond         
(GtkFileChooserEmbed *chooser_embed);
+ static void           gtk_file_chooser_default_initial_focus          
(GtkFileChooserEmbed *chooser_embed);
+ 
+@@ -423,8 +423,8 @@ static void browse_files_center_selected_row (GtkFileC
+ static void location_button_toggled_cb (GtkToggleButton *toggle,
+                                       GtkFileChooserDefault *impl);
+ static void location_switch_to_path_bar (GtkFileChooserDefault *impl);
++static void settings_load (GtkFileChooserDefault *impl);
+ 
+-
+ 
+ 
+ /* Drag and drop interface declarations */
+@@ -485,6 +485,7 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDe
+   widget_class->hierarchy_changed = 
gtk_file_chooser_default_hierarchy_changed;
+   widget_class->style_set = gtk_file_chooser_default_style_set;
+   widget_class->screen_changed = gtk_file_chooser_default_screen_changed;
++  widget_class->size_allocate = gtk_file_chooser_default_size_allocate;
+ 
+   signals[LOCATION_POPUP] =
+     _gtk_binding_signal_new (I_("location-popup"),
+@@ -665,7 +666,7 @@ static void
+ gtk_file_chooser_embed_default_iface_init (GtkFileChooserEmbedIface *iface)
+ {
+   iface->get_default_size = gtk_file_chooser_default_get_default_size;
+-  iface->get_resizable_hints = gtk_file_chooser_default_get_resizable_hints;
++  iface->get_resizable = gtk_file_chooser_default_get_resizable;
+   iface->should_respond = gtk_file_chooser_default_should_respond;
+   iface->initial_focus = gtk_file_chooser_default_initial_focus;
+ }
+@@ -4998,6 +4999,7 @@ gtk_file_chooser_default_set_property (GObject      *o
+             }
+           impl->action = action;
+           update_appearance (impl);
++          settings_load (impl);
+         }
+       }
+       break;
+@@ -5419,6 +5421,37 @@ gtk_file_chooser_default_screen_changed (GtkWidget *wi
+   profile_end ("end", NULL);
+ }
+ 
++static void
++gtk_file_chooser_default_size_allocate (GtkWidget     *widget,
++                                      GtkAllocation *allocation)
++{
++  GtkFileChooserDefault *impl;
++
++  impl = GTK_FILE_CHOOSER_DEFAULT (widget);
++
++  GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->size_allocate 
(widget, allocation);
++
++  if (!gtk_file_chooser_default_get_resizable (GTK_FILE_CHOOSER_EMBED (impl)))
++    {
++      /* The dialog is not resizable, we shouldn't
++       * trust in the size it has in this stage
++       */
++      return;
++    }
++
++  impl->default_width = allocation->width;
++  impl->default_height = allocation->height;
++
++  if (impl->preview_widget_active &&
++      impl->preview_widget &&
++      GTK_WIDGET_DRAWABLE (impl->preview_widget))
++    impl->default_width -= impl->preview_widget->allocation.width + 
PREVIEW_HBOX_SPACING;
++
++  if (impl->extra_widget &&
++      GTK_WIDGET_DRAWABLE (impl->extra_widget))
++    impl->default_height -= GTK_BOX (widget)->spacing + 
impl->extra_widget->allocation.height;
++}
++
+ static gboolean
+ get_is_file_filtered (GtkFileChooserDefault *impl,
+                     const GtkFilePath     *path,
+@@ -7186,49 +7219,35 @@ find_good_size_from_style (GtkWidget *widget,
+                          gint      *height)
+ {
+   GtkFileChooserDefault *impl;
+-  gint default_width, default_height;
+   int font_size;
+-  GtkRequisition req;
+   GdkScreen *screen;
+   double resolution;
+ 
+   g_assert (widget->style != NULL);
+   impl = GTK_FILE_CHOOSER_DEFAULT (widget);
+ 
+-  screen = gtk_widget_get_screen (widget);
+-  if (screen)
++  if (impl->default_width == 0 &&
++      impl->default_height == 0)
+     {
+-      resolution = gdk_screen_get_resolution (screen);
+-      if (resolution < 0.0) /* will be -1 if the resolution is not defined in 
the GdkScreen */
+-      resolution = 96.0;
+-    }
+-  else
+-    resolution = 96.0; /* wheeee */
++      screen = gtk_widget_get_screen (widget);
++      if (screen)
++      {
++        resolution = gdk_screen_get_resolution (screen);
++        if (resolution < 0.0) /* will be -1 if the resolution is not defined 
in the GdkScreen */
++          resolution = 96.0;
++      }
++      else
++      resolution = 96.0; /* wheeee */
+ 
+-  font_size = pango_font_description_get_size (widget->style->font_desc);
+-  font_size = PANGO_PIXELS (font_size) * resolution / 72.0;
++      font_size = pango_font_description_get_size (widget->style->font_desc);
++      font_size = PANGO_PIXELS (font_size) * resolution / 72.0;
+ 
+-  default_width = font_size * NUM_CHARS;
+-  default_height = font_size * NUM_LINES;
+-
+-  if (impl->preview_widget_active && impl->preview_widget)
+-    {
+-      gtk_widget_size_request (impl->preview_box, &req);
+-      default_width += PREVIEW_HBOX_SPACING + req.width;
++      impl->default_width = font_size * NUM_CHARS;
++      impl->default_height = font_size * NUM_LINES;
+     }
+ 
+-  if (impl->extra_widget)
+-    {
+-      gtk_widget_size_request (impl->extra_align, &req);
+-      default_height += GTK_BOX (widget)->spacing + req.height;
+-    }
+-
+-  gtk_widget_size_request (widget, &req);
+-  default_width = MAX (default_width, req.width);
+-  default_height = MAX (default_height, req.height);
+-
+-  *width = default_width;
+-  *height = default_height;
++  *width = impl->default_width;
++  *height = impl->default_height;
+ }
+ 
+ static void
+@@ -7237,35 +7256,37 @@ gtk_file_chooser_default_get_default_size (GtkFileChoo
+                                          gint                *default_height)
+ {
+   GtkFileChooserDefault *impl;
++  GtkRequisition req;
+ 
+   impl = GTK_FILE_CHOOSER_DEFAULT (chooser_embed);
+   find_good_size_from_style (GTK_WIDGET (chooser_embed), default_width, 
default_height);
++
++  if (impl->preview_widget_active &&
++      impl->preview_widget &&
++      GTK_WIDGET_VISIBLE (impl->preview_widget))
++    {
++      gtk_widget_size_request (impl->preview_box, &req);
++      *default_width += PREVIEW_HBOX_SPACING + req.width;
++    }
++
++  if (impl->extra_widget &&
++      GTK_WIDGET_VISIBLE (impl->extra_widget))
++    {
++      gtk_widget_size_request (impl->extra_align, &req);
++      *default_height += GTK_BOX (chooser_embed)->spacing + req.height;
++    }
+ }
+ 
+-static void
+-gtk_file_chooser_default_get_resizable_hints (GtkFileChooserEmbed 
*chooser_embed,
+-                                            gboolean            
*resize_horizontally,
+-                                            gboolean            
*resize_vertically)
++static gboolean
++gtk_file_chooser_default_get_resizable (GtkFileChooserEmbed *chooser_embed)
+ {
+   GtkFileChooserDefault *impl;
+ 
+-  g_return_if_fail (resize_horizontally != NULL);
+-  g_return_if_fail (resize_vertically != NULL);
+-
+   impl = GTK_FILE_CHOOSER_DEFAULT (chooser_embed);
+ 
+-  *resize_horizontally = TRUE;
+-  *resize_vertically = TRUE;
+-
+-  if (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE ||
+-      impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
+-    {
+-      if (! gtk_expander_get_expanded (GTK_EXPANDER (impl->save_expander)))
+-      {
+-        *resize_horizontally = FALSE;
+-        *resize_vertically = FALSE;
+-      }
+-    }
++  return (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
++        impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ||
++        gtk_expander_get_expanded (GTK_EXPANDER (impl->save_expander)));
+ }
+ 
+ struct switch_folder_closure {
Index: patches/patch-gtk_gtkfilechooserdialog_c
===================================================================
RCS file: patches/patch-gtk_gtkfilechooserdialog_c
diff -N patches/patch-gtk_gtkfilechooserdialog_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-gtk_gtkfilechooserdialog_c    22 May 2007 16:15:48 -0000
@@ -0,0 +1,212 @@
+$OpenBSD$
+--- gtk/gtkfilechooserdialog.c.orig    Wed May  2 18:26:58 2007
++++ gtk/gtkfilechooserdialog.c Tue May 22 17:53:52 2007
+@@ -87,10 +87,6 @@ gtk_file_chooser_dialog_init (GtkFileChooserDialog *di
+                                                                  
GTK_TYPE_FILE_CHOOSER_DIALOG,
+                                                                  
GtkFileChooserDialogPrivate);
+   dialog->priv = priv;
+-  dialog->priv->default_width = -1;
+-  dialog->priv->default_height = -1;
+-  dialog->priv->resize_horizontally = TRUE;
+-  dialog->priv->resize_vertically = TRUE;
+   dialog->priv->response_requested = FALSE;
+ 
+   gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+@@ -151,25 +147,6 @@ file_chooser_widget_file_activated (GtkFileChooser    
+ }
+ 
+ static void
+-file_chooser_widget_update_hints (GtkFileChooserDialog *dialog,
+-                                gint                  width)
+-{
+-  GtkFileChooserDialogPrivate *priv;
+-  GdkGeometry geometry;
+-
+-  priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
+-
+-  geometry.min_width = (!priv->resize_horizontally ? width : -1);
+-  geometry.min_height = -1;
+-  geometry.max_width = (priv->resize_horizontally?G_MAXSHORT:-1);
+-  geometry.max_height = (priv->resize_vertically?G_MAXSHORT:-1);
+-
+-  gtk_window_set_geometry_hints (GTK_WINDOW (dialog), NULL,
+-                               &geometry,
+-                               GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE);
+-}
+-
+-static void
+ clamp_to_screen (GtkWidget *widget,
+                gint      *width,
+                gint      *height)
+@@ -193,131 +170,57 @@ clamp_to_screen (GtkWidget *widget,
+ }
+ 
+ static void
+-file_chooser_widget_default_realized_size_changed (GtkWidget            
*widget,
+-                                                 GtkFileChooserDialog *dialog)
++file_chooser_widget_default_size_changed (GtkWidget            *widget,
++                                        GtkFileChooserDialog *dialog)
+ {
+   GtkFileChooserDialogPrivate *priv;
+-  gint width;
+-  gint height;
++  gint width, height;
+   gint default_width, default_height;
+-  GtkRequisition req;
+-  gboolean resize_horizontally;
+-  gboolean resize_vertically;
+-  gboolean update_hints;
+-  gint dx = 0, dy = 0;
+-  gint cur_width, cur_height;
++  GtkRequisition req, widget_req;
++  gboolean resizable;
+ 
+   priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
+ 
+-  /* Force a size request of everything before we start.  This will make sure
+-   * that widget->requisition is meaningful. */
+-  gtk_widget_size_request (GTK_WIDGET (dialog), &req);
+-  gtk_window_get_size (GTK_WINDOW (dialog), &cur_width, &cur_height);
+-  width = GTK_WIDGET (dialog)->requisition.width - 
priv->widget->requisition.width;
+-  height = GTK_WIDGET (dialog)->requisition.height - 
priv->widget->requisition.height;
+-  _gtk_file_chooser_embed_get_default_size (GTK_FILE_CHOOSER_EMBED 
(priv->widget),
+-                                          &default_width, &default_height);
++  /* Unset any previously set size */
++  gtk_widget_set_size_request (GTK_WIDGET (dialog), -1, -1);
+ 
+-  /* Ideal target size modulo any resizing */
+-  width = default_width + width;
+-  height = default_height + height;
+-
+-  /* Now, we test for resizability */
+-  update_hints = FALSE;
+-  _gtk_file_chooser_embed_get_resizable_hints (GTK_FILE_CHOOSER_EMBED 
(priv->widget),
+-                                             &resize_horizontally,
+-                                             &resize_vertically);
+-  resize_vertically = (!! resize_vertically);     /* normalize */
+-  resize_horizontally = (!! resize_horizontally);
+-
+-  if (resize_horizontally && priv->resize_horizontally)
++  if (GTK_WIDGET_DRAWABLE (widget))
+     {
+-      dx = default_width - priv->default_width;
+-      priv->default_width = default_width;
+-    }
+-  else if (resize_horizontally && ! priv->resize_horizontally)
+-    {
+-      /* We restore to the ideal size + any change in default_size (which is 
not
+-       * expected).  It would be nicer to store the older size to restore to 
in
+-       * the future. */
+-      dx = default_width - priv->default_width;
+-      dx += width - cur_width;
+-      priv->default_width = default_width;
+-      update_hints = TRUE;
+-    }
+-  else
+-    {
+-      update_hints = TRUE;
+-    }
++      /* Force a size request of everything before we start.  This will make 
sure
++       * that widget->requisition is meaningful. */
++      gtk_widget_size_request (GTK_WIDGET (dialog), &req);
++      gtk_widget_size_request (widget, &widget_req);
+ 
+-  if (resize_vertically && priv->resize_vertically)
+-    {
+-      dy = default_height - priv->default_height;
+-      priv->default_height = default_height;
++      width = req.width - widget_req.width;
++      height = req.height - widget_req.height;
+     }
+-  else if (resize_vertically && ! priv->resize_vertically)
+-    {
+-      dy = default_height - priv->default_height;
+-      dy += height - cur_height;
+-      priv->default_height = default_height;
+-      update_hints = TRUE;
+-    }
+   else
+     {
+-      update_hints = TRUE;
++      width = GTK_WIDGET (dialog)->allocation.width - 
widget->allocation.width;
++      height = GTK_WIDGET (dialog)->allocation.height - 
widget->allocation.height;
+     }
+ 
+-  priv->resize_horizontally = resize_horizontally;
+-  priv->resize_vertically = resize_vertically;
+-
+-  if (dx != 0 || dy != 0)
+-    {
+-      gint new_width = cur_width + dx;
+-      gint new_height = cur_height + dy;
+-
+-      clamp_to_screen (GTK_WIDGET (dialog), &new_width, &new_height);
+-      
+-      gtk_window_resize (GTK_WINDOW (dialog), new_width, new_height);
+-    }
+-
+-  /* Only store the size if we can resize in that direction. */
+-  if (update_hints)
+-    file_chooser_widget_update_hints (dialog, width);
+-}
+-
+-static void
+-file_chooser_widget_default_unrealized_size_changed (GtkWidget            
*widget,
+-                                                   GtkFileChooserDialog 
*dialog)
+-{
+-  GtkFileChooserDialogPrivate *priv;
+-  GtkRequisition req;
+-  gint width, height;
+-
+-  priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
+-  gtk_widget_size_request (GTK_WIDGET (dialog), &req);
+-
+-  _gtk_file_chooser_embed_get_resizable_hints (GTK_FILE_CHOOSER_EMBED 
(priv->widget),
+-                                             &(priv->resize_horizontally),
+-                                             &(priv->resize_vertically));
++  resizable = _gtk_file_chooser_embed_get_resizable (GTK_FILE_CHOOSER_EMBED 
(priv->widget));
+   _gtk_file_chooser_embed_get_default_size (GTK_FILE_CHOOSER_EMBED 
(priv->widget),
+-                                          &(priv->default_width), 
&(priv->default_height));
+-  
+-  /* Determine how much space the rest of the dialog uses compared to 
priv->widget */
+-  width = priv->default_width + GTK_WIDGET (dialog)->requisition.width - 
priv->widget->requisition.width;
+-  height = priv->default_height + GTK_WIDGET (dialog)->requisition.height - 
priv->widget->requisition.height;
++                                          &default_width, &default_height);
+ 
+-  gtk_window_set_default_size (GTK_WINDOW (dialog), width, height);
+-  file_chooser_widget_update_hints (dialog, width);
+-}
++  /* Ideal target size plus any extra size */
++  width = default_width + width + (2 * GTK_CONTAINER (dialog)->border_width);
++  height = default_height + height + (2 * GTK_CONTAINER 
(dialog)->border_width);
+ 
+-static void
+-file_chooser_widget_default_size_changed (GtkWidget            *widget,
+-                                        GtkFileChooserDialog *dialog)
+-{
+   if (GTK_WIDGET_REALIZED (dialog))
+-    file_chooser_widget_default_realized_size_changed (widget, dialog);
++    clamp_to_screen (GTK_WIDGET (dialog), &width, &height);
++
++  if (resizable)
++    {
++      gtk_window_set_resizable (GTK_WINDOW (dialog), resizable);
++      gtk_window_resize (GTK_WINDOW (dialog), width, height);
++    }
+   else
+-    file_chooser_widget_default_unrealized_size_changed (widget, dialog);
++    {
++      gtk_widget_set_size_request (GTK_WIDGET (dialog), width, -1);
++      gtk_window_set_resizable (GTK_WINDOW (dialog), resizable);
++    }
+ }
+ 
+ static void
+@@ -487,6 +390,7 @@ gtk_file_chooser_dialog_map (GtkWidget *widget)
+   if (!GTK_WIDGET_MAPPED (priv->widget))
+     gtk_widget_map (priv->widget);
+ 
++  file_chooser_widget_default_size_changed (priv->widget, dialog);
+   _gtk_file_chooser_embed_initial_focus (GTK_FILE_CHOOSER_EMBED 
(priv->widget));
+ 
+   GTK_WIDGET_CLASS (gtk_file_chooser_dialog_parent_class)->map (widget);
Index: patches/patch-gtk_gtkfilechooserembed_c
===================================================================
RCS file: patches/patch-gtk_gtkfilechooserembed_c
diff -N patches/patch-gtk_gtkfilechooserembed_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-gtk_gtkfilechooserembed_c     22 May 2007 16:15:48 -0000
@@ -0,0 +1,60 @@
+$OpenBSD$
+--- gtk/gtkfilechooserembed.c.orig     Wed May  2 18:26:58 2007
++++ gtk/gtkfilechooserembed.c  Tue May 22 17:53:52 2007
+@@ -28,9 +28,7 @@ static void gtk_file_chooser_embed_class_init (gpointe
+ static void delegate_get_default_size         (GtkFileChooserEmbed 
*chooser_embed,
+                                              gint                
*default_width,
+                                              gint                
*default_height);
+-static void delegate_get_resizable_hints      (GtkFileChooserEmbed 
*chooser_embed,
+-                                             gboolean            
*resize_horizontally,
+-                                             gboolean            
*resize_vertically);
++static gboolean delegate_get_resizable        (GtkFileChooserEmbed 
*chooser_embed);
+ static gboolean delegate_should_respond       (GtkFileChooserEmbed 
*chooser_embed);
+ static void delegate_initial_focus            (GtkFileChooserEmbed 
*chooser_embed);
+ static void delegate_default_size_changed     (GtkFileChooserEmbed 
*chooser_embed,
+@@ -57,7 +55,7 @@ void
+ _gtk_file_chooser_embed_delegate_iface_init (GtkFileChooserEmbedIface *iface)
+ {
+   iface->get_default_size = delegate_get_default_size;
+-  iface->get_resizable_hints = delegate_get_resizable_hints;
++  iface->get_resizable = delegate_get_resizable;
+   iface->should_respond = delegate_should_respond;
+   iface->initial_focus = delegate_initial_focus;
+ }
+@@ -96,13 +94,11 @@ delegate_get_default_size (GtkFileChooserEmbed *choose
+ {
+   _gtk_file_chooser_embed_get_default_size (get_delegate (chooser_embed), 
default_width, default_height);
+ }
+-     
+-static void
+-delegate_get_resizable_hints (GtkFileChooserEmbed *chooser_embed,
+-                            gboolean            *resize_horizontally,
+-                            gboolean            *resize_vertically)
++
++static gboolean
++delegate_get_resizable (GtkFileChooserEmbed *chooser_embed)
+ {
+-  _gtk_file_chooser_embed_get_resizable_hints (get_delegate (chooser_embed), 
resize_horizontally, resize_vertically);
++  return _gtk_file_chooser_embed_get_resizable (get_delegate (chooser_embed));
+ }
+ 
+ static gboolean
+@@ -208,14 +204,10 @@ _gtk_file_chooser_embed_initial_focus (GtkFileChooserE
+   GTK_FILE_CHOOSER_EMBED_GET_IFACE (chooser_embed)->initial_focus 
(chooser_embed);
+ }
+ 
+-void
+-_gtk_file_chooser_embed_get_resizable_hints (GtkFileChooserEmbed 
*chooser_embed,
+-                                           gboolean            
*resize_horizontally,
+-                                           gboolean            
*resize_vertically)
++gboolean
++_gtk_file_chooser_embed_get_resizable (GtkFileChooserEmbed *chooser_embed)
+ {
+-  g_return_if_fail (GTK_IS_FILE_CHOOSER_EMBED (chooser_embed));
+-  g_return_if_fail (resize_horizontally != NULL);
+-  g_return_if_fail (resize_vertically != NULL);
++  g_return_val_if_fail (GTK_IS_FILE_CHOOSER_EMBED (chooser_embed), FALSE);
+ 
+-  GTK_FILE_CHOOSER_EMBED_GET_IFACE (chooser_embed)->get_resizable_hints 
(chooser_embed, resize_horizontally, resize_vertically);
++  return GTK_FILE_CHOOSER_EMBED_GET_IFACE (chooser_embed)->get_resizable 
(chooser_embed);
+ }
Index: patches/patch-gtk_gtkfilechooserembed_h
===================================================================
RCS file: patches/patch-gtk_gtkfilechooserembed_h
diff -N patches/patch-gtk_gtkfilechooserembed_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-gtk_gtkfilechooserembed_h     22 May 2007 16:15:48 -0000
@@ -0,0 +1,26 @@
+$OpenBSD$
+--- gtk/gtkfilechooserembed.h.orig     Wed May  2 18:26:58 2007
++++ gtk/gtkfilechooserembed.h  Tue May 22 17:53:52 2007
+@@ -43,9 +43,7 @@ struct _GtkFileChooserEmbedIface
+   void (*get_default_size)        (GtkFileChooserEmbed *chooser_embed,
+                                  gint                *default_width,
+                                  gint                *default_height);
+-  void (*get_resizable_hints)     (GtkFileChooserEmbed *chooser_embed,
+-                                 gboolean            *resize_horizontally,
+-                                 gboolean            *resize_vertically);
++  gboolean (*get_resizable)       (GtkFileChooserEmbed *chooser_embed);
+ 
+   gboolean (*should_respond)      (GtkFileChooserEmbed *chooser_embed);
+ 
+@@ -61,10 +59,7 @@ GType _gtk_file_chooser_embed_get_type (void) G_GNUC_C
+ void  _gtk_file_chooser_embed_get_default_size    (GtkFileChooserEmbed 
*chooser_embed,
+                                                  gint                
*default_width,
+                                                  gint                
*default_height);
+-void  _gtk_file_chooser_embed_get_resizable_hints (GtkFileChooserEmbed 
*chooser_embed,
+-                                                 gboolean            
*resize_horizontally,
+-                                                 gboolean            
*resize_vertically);
+-
++gboolean _gtk_file_chooser_embed_get_resizable  (GtkFileChooserEmbed 
*chooser_embed);
+ gboolean _gtk_file_chooser_embed_should_respond (GtkFileChooserEmbed 
*chooser_embed);
+ 
+ void _gtk_file_chooser_embed_initial_focus (GtkFileChooserEmbed 
*chooser_embed);
Index: patches/patch-gtk_gtkfilechooserprivate_h
===================================================================
RCS file: patches/patch-gtk_gtkfilechooserprivate_h
diff -N patches/patch-gtk_gtkfilechooserprivate_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-gtk_gtkfilechooserprivate_h   22 May 2007 16:15:48 -0000
@@ -0,0 +1,24 @@
+$OpenBSD$
+--- gtk/gtkfilechooserprivate.h.orig   Wed May  2 18:26:59 2007
++++ gtk/gtkfilechooserprivate.h        Tue May 22 17:53:52 2007
+@@ -109,10 +109,6 @@ struct _GtkFileChooserDialogPrivate
+   char *file_system;
+ 
+   /* for use with GtkFileChooserEmbed */
+-  gint default_width;
+-  gint default_height;
+-  gboolean resize_horizontally;
+-  gboolean resize_vertically;
+   gboolean response_requested;
+ };
+ 
+@@ -253,6 +249,9 @@ struct _GtkFileChooserDefault
+   GdkDragContext *shortcuts_drag_context;
+   GSource *shortcuts_drag_outside_idle;
+ #endif
++
++  gint default_width;
++  gint default_height;
+ 
+   /* Flags */
+ 

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

Reply via email to