r11001 - in /desktop/unstable/gtk+2.0/debian: changelog patches/032_filechooser-sizing.patch patches/040_filechooser_single-click.patch patches/series

joss at users.alioth.debian.org joss at users.alioth.debian.org
Tue May 15 22:07:11 UTC 2007


Author: joss
Date: Tue May 15 22:07:10 2007
New Revision: 11001

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=11001
Log:
* 032_filechooser-sizing.patch: patch from Carlos Garnacho in bugzilla 
  #420285. Fixes (among many other things) infinite flickering with 
  some window managers (closes: #420021).

Added:
    desktop/unstable/gtk+2.0/debian/patches/032_filechooser-sizing.patch
Modified:
    desktop/unstable/gtk+2.0/debian/changelog
    desktop/unstable/gtk+2.0/debian/patches/040_filechooser_single-click.patch
    desktop/unstable/gtk+2.0/debian/patches/series

Modified: desktop/unstable/gtk+2.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/changelog?rev=11001&op=diff
==============================================================================
--- desktop/unstable/gtk+2.0/debian/changelog (original)
+++ desktop/unstable/gtk+2.0/debian/changelog Tue May 15 22:07:10 2007
@@ -1,10 +1,16 @@
 gtk+2.0 (2.10.12-2) UNRELEASED; urgency=low
 
+  [ Loic Minier ]
   * New patch, 15_default-fallback-icon-theme, sets the default
     gtk-fallback-icon-theme to "gnome"; closes: #421353.
   * Also honor parallel=n in DEB_BUILD_OPTIONS.
 
- -- Loic Minier <lool at dooz.org>  Tue, 08 May 2007 11:10:05 +0200
+  [ Josselin Mouette ]
+  * 032_filechooser-sizing.patch: patch from Carlos Garnacho in bugzilla 
+    #420285. Fixes (among many other things) infinite flickering with 
+    some window managers (closes: #420021).
+
+ -- Josselin Mouette <joss at debian.org>  Tue, 15 May 2007 22:47:50 +0200
 
 gtk+2.0 (2.10.12-1) unstable; urgency=low
 

Added: desktop/unstable/gtk+2.0/debian/patches/032_filechooser-sizing.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/patches/032_filechooser-sizing.patch?rev=11001&op=file
==============================================================================
--- desktop/unstable/gtk+2.0/debian/patches/032_filechooser-sizing.patch (added)
+++ desktop/unstable/gtk+2.0/debian/patches/032_filechooser-sizing.patch Tue May 15 22:07:10 2007
@@ -1,0 +1,545 @@
+Index: gtk+-2.10.12/gtk/gtkfilechooserembed.c
+===================================================================
+--- gtk+-2.10.12.orig/gtk/gtkfilechooserembed.c	2007-05-15 22:51:55.297494250 +0200
++++ gtk+-2.10.12/gtk/gtkfilechooserembed.c	2007-05-15 22:55:13.461878750 +0200
+@@ -28,9 +28,7 @@
+ 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 @@
+ _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 @@
+ {
+   _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_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: gtk+-2.10.12/gtk/gtkfilechooserembed.h
+===================================================================
+--- gtk+-2.10.12.orig/gtk/gtkfilechooserembed.h	2007-05-15 22:51:55.285493500 +0200
++++ gtk+-2.10.12/gtk/gtkfilechooserembed.h	2007-05-15 22:55:13.461878750 +0200
+@@ -43,9 +43,7 @@
+   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 @@
+ 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: gtk+-2.10.12/gtk/gtkfilechooserdialog.c
+===================================================================
+--- gtk+-2.10.12.orig/gtk/gtkfilechooserdialog.c	2007-05-15 22:51:55.273492750 +0200
++++ gtk+-2.10.12/gtk/gtkfilechooserdialog.c	2007-05-15 22:55:13.461878750 +0200
+@@ -87,10 +87,6 @@
+ 								   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 @@
+ }
+ 
+ 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 @@
+ }
+ 
+ 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);
+-
+-  /* 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);
++  /* Unset any previously set size */
++  gtk_widget_set_size_request (GTK_WIDGET (dialog), -1, -1);
+ 
+-  if (resize_horizontally && priv->resize_horizontally)
+-    {
+-      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
++  if (GTK_WIDGET_DRAWABLE (widget))
+     {
+-      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;
+-    }
+-  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;
++      width = req.width - widget_req.width;
++      height = req.height - widget_req.height;
+     }
+   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
+Index: gtk+-2.10.12/gtk/gtkfilechooserdefault.c
+===================================================================
+--- gtk+-2.10.12.orig/gtk/gtkfilechooserdefault.c	2007-05-15 22:51:55.265492250 +0200
++++ gtk+-2.10.12/gtk/gtkfilechooserdefault.c	2007-05-15 23:24:40.624319500 +0200
+@@ -272,6 +272,8 @@
+ 							 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 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,7 +423,10 @@
+ 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);
++static void find_good_size_from_style   (GtkWidget *widget,
++                                         gint      *width,
++                                         gint      *height);
+ 
+ 
+ 
+@@ -485,6 +488,7 @@
+   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 +669,7 @@
+ 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 +5002,7 @@
+ 	      }
+ 	    impl->action = action;
+ 	    update_appearance (impl);
++	    settings_load (impl);
+ 	  }
+       }
+       break;
+@@ -5419,6 +5424,41 @@
+   profile_end ("end", NULL);
+ }
+ 
++static void
++gtk_file_chooser_default_size_allocate (GtkWidget     *widget,
++					GtkAllocation *allocation)
++{
++  GtkFileChooserDefault *impl;
++  int width, height;
++  GdkScreen *screen = gtk_widget_get_screen (widget);
++
++  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 = impl->default_height = 0;
++  find_good_size_from_style (widget, &width, &height);
++  impl->default_width = MAX (width, gdk_screen_get_width (screen) * 0.75);
++  impl->default_height = MAX (height, gdk_screen_get_height (screen) * 0.75);
++
++  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 +7226,35 @@
+ 			   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 */
+-
+-  font_size = pango_font_description_get_size (widget->style->font_desc);
+-  font_size = PANGO_PIXELS (font_size) * resolution / 72.0;
++      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 */
+ 
+-  default_width = font_size * NUM_CHARS;
+-  default_height = font_size * NUM_LINES;
++      font_size = pango_font_description_get_size (widget->style->font_desc);
++      font_size = PANGO_PIXELS (font_size) * resolution / 72.0;
+ 
+-  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 +7263,37 @@
+ 					   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: gtk+-2.10.12/gtk/gtkfilechooserprivate.h
+===================================================================
+--- gtk+-2.10.12.orig/gtk/gtkfilechooserprivate.h	2007-05-15 22:51:55.253491500 +0200
++++ gtk+-2.10.12/gtk/gtkfilechooserprivate.h	2007-05-15 22:55:13.469879250 +0200
+@@ -109,10 +109,6 @@
+   char *file_system;
+ 
+   /* for use with GtkFileChooserEmbed */
+-  gint default_width;
+-  gint default_height;
+-  gboolean resize_horizontally;
+-  gboolean resize_vertically;
+   gboolean response_requested;
+ };
+ 
+@@ -254,6 +250,9 @@
+   GSource *shortcuts_drag_outside_idle;
+ #endif
+ 
++  gint default_width;
++  gint default_height;
++
+   /* Flags */
+ 
+   guint local_only : 1;

Modified: desktop/unstable/gtk+2.0/debian/patches/040_filechooser_single-click.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/patches/040_filechooser_single-click.patch?rev=11001&op=diff
==============================================================================
--- desktop/unstable/gtk+2.0/debian/patches/040_filechooser_single-click.patch (original)
+++ desktop/unstable/gtk+2.0/debian/patches/040_filechooser_single-click.patch Tue May 15 22:07:10 2007
@@ -1,8 +1,8 @@
-Index: gtk+2.0-2.10.12/gtk/gtkfilechooserdefault.c
+Index: gtk+-2.10.12/gtk/gtkfilechooserdefault.c
 ===================================================================
---- gtk+2.0-2.10.12.orig/gtk/gtkfilechooserdefault.c	2007-05-02 18:26:59.000000000 +0200
-+++ gtk+2.0-2.10.12/gtk/gtkfilechooserdefault.c	2007-05-03 15:10:01.000000000 +0200
-@@ -3249,8 +3249,22 @@
+--- gtk+-2.10.12.orig/gtk/gtkfilechooserdefault.c	2007-05-15 22:47:24.308558500 +0200
++++ gtk+-2.10.12/gtk/gtkfilechooserdefault.c	2007-05-15 22:51:38.228427500 +0200
+@@ -3251,8 +3251,22 @@
  shortcuts_selection_changed_cb (GtkTreeSelection      *selection,
  				GtkFileChooserDefault *impl)
  {
@@ -25,7 +25,7 @@
  }
  
  static gboolean
-@@ -7899,25 +7913,6 @@
+@@ -7921,25 +7935,6 @@
        gtk_file_path_free (path);
        return retval;
      }
@@ -51,7 +51,7 @@
    else if (impl->toplevel_last_focus_widget == impl->browse_files_tree_view)
      {
        /* The focus is on a dialog's action area button, *and* the widget that
-@@ -8246,17 +8241,6 @@
+@@ -8268,17 +8263,6 @@
  			    GtkTreeViewColumn     *column,
  			    GtkFileChooserDefault *impl)
  {

Modified: desktop/unstable/gtk+2.0/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/patches/series?rev=11001&op=diff
==============================================================================
--- desktop/unstable/gtk+2.0/debian/patches/series (original)
+++ desktop/unstable/gtk+2.0/debian/patches/series Tue May 15 22:07:10 2007
@@ -11,6 +11,7 @@
 021_loader-files-d.patch
 #025_dfb-window-destroy-leak.patch
 030_gtkentry_password-char-circle.patch
+032_filechooser-sizing.patch
 040_filechooser_single-click.patch
 041_ia32-libs.patch
 070_mandatory-relibtoolize.patch




More information about the pkg-gnome-commits mailing list