iconview: Don't shrink items
authorBenjamin Otte <otte@redhat.com>
Sun, 10 Jun 2012 14:28:47 +0000 (16:28 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 14 Jun 2012 05:41:39 +0000 (07:41 +0200)
The previous code assumed that the width was always enough for more than
one column, which is obviously not correct when a number of columns is
hardcoded.

With this patch, it will now always check that the width is enough and
otherwise cause scrolling.

https://bugzilla.gnome.org/show_bug.cgi?id=677809

gtk/gtkiconview.c

index ca058425f59a4067c2ce8a6f6d97f77f4a4d5c71..a451735a251c53005cdcf1235e851ca1f7905556 100644 (file)
@@ -2868,16 +2868,9 @@ gtk_icon_view_layout (GtkIconView *icon_view)
                                           &n_columns, &item_width);
   n_rows = (n_items + n_columns - 1) / n_columns;
 
-  if (n_columns <= 1)
-    {
-      /* We might need vertical scrolling here */
-      int min_width = item_width + 2 * priv->item_padding + 2 * priv->margin;
-      priv->width = MAX (min_width, gtk_widget_get_allocated_width (widget));
-    }
-  else
-    {
-      priv->width = gtk_widget_get_allocated_width (widget);
-    }
+  priv->width = n_columns * (item_width + 2 * priv->item_padding + priv->column_spacing) - priv->column_spacing;
+  priv->width += 2 * priv->margin;
+  priv->width = MAX (priv->width, gtk_widget_get_allocated_width (widget));
 
   /* Clear the per row contexts */
   g_ptr_array_set_size (icon_view->priv->row_contexts, 0);