iconview: clamp item size to be in [minimum, natural]

Minimum size is necessary so you can see the item. If we can't get that
we need to scroll.
Natural as the maximum is used so that the spacing between items doesn't
increase when resizing the iconview, but empty space is added to the
right/bottom instead.

https://bugzilla.gnome.org/show_bug.cgi?id=677809
This commit is contained in:
Benjamin Otte 2012-06-13 19:26:09 +02:00
parent 7c1b561194
commit 6d9d87806a

View File

@ -1598,7 +1598,7 @@ gtk_icon_view_compute_n_items_for_size (GtkIconView *icon_view,
if (min_item_size) if (min_item_size)
{ {
*min_item_size = size / *min_items; *min_item_size = size / *min_items;
*min_item_size = MIN (*min_item_size, natural); *min_item_size = CLAMP (*min_item_size, minimum, natural);
*min_item_size -= spacing; *min_item_size -= spacing;
*min_item_size -= 2 * priv->item_padding; *min_item_size -= 2 * priv->item_padding;
} }
@ -1606,7 +1606,7 @@ gtk_icon_view_compute_n_items_for_size (GtkIconView *icon_view,
if (max_item_size) if (max_item_size)
{ {
*max_item_size = size / *max_items; *max_item_size = size / *max_items;
*max_item_size = MIN (*max_item_size, natural); *max_item_size = CLAMP (*max_item_size, minimum, natural);
*max_item_size -= spacing; *max_item_size -= spacing;
*max_item_size -= 2 * priv->item_padding; *max_item_size -= 2 * priv->item_padding;
} }