diff options
author | Matthias Clasen <mclasen@redhat.com> | 2005-03-17 18:37:35 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2005-03-17 18:37:35 +0000 |
commit | b3570de983215cfe1ae7fddf97ca1a511bc3badc (patch) | |
tree | 32f1e0f2cd75cbf61f74cfed3cc0d63ce0bd9e71 /gtk | |
parent | c4aa487d7273ff60250e92a2eb382779075555c9 (diff) | |
download | gtk+-b3570de983215cfe1ae7fddf97ca1a511bc3badc.tar.gz |
Clamp adjustment values on resize. (#170567, Tomislav Jonjic)
2005-03-17 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkiconview.c (gtk_icon_view_size_allocate): Clamp
adjustment values on resize. (#170567, Tomislav Jonjic)
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkiconview.c | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 205e0d2e82..518bd00d32 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -953,6 +953,7 @@ gtk_icon_view_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkIconView *icon_view; + GtkAdjustment *hadjustment, *vadjustment; widget->allocation = *allocation; @@ -968,19 +969,30 @@ gtk_icon_view_size_allocate (GtkWidget *widget, MAX (icon_view->priv->height, allocation->height)); } - icon_view->priv->hadjustment->page_size = allocation->width; - icon_view->priv->hadjustment->page_increment = allocation->width * 0.9; - icon_view->priv->hadjustment->step_increment = allocation->width * 0.1; - icon_view->priv->hadjustment->lower = 0; - icon_view->priv->hadjustment->upper = MAX (allocation->width, icon_view->priv->width); - gtk_adjustment_changed (icon_view->priv->hadjustment); - - icon_view->priv->vadjustment->page_size = allocation->height; - icon_view->priv->vadjustment->page_increment = allocation->height * 0.9; - icon_view->priv->vadjustment->step_increment = allocation->width * 0.1; - icon_view->priv->vadjustment->lower = 0; - icon_view->priv->vadjustment->upper = MAX (allocation->height, icon_view->priv->height); - gtk_adjustment_changed (icon_view->priv->vadjustment); + hadjustment = icon_view->priv->hadjustment; + vadjustment = icon_view->priv->vadjustment; + + hadjustment->page_size = allocation->width; + hadjustment->page_increment = allocation->width * 0.9; + hadjustment->step_increment = allocation->width * 0.1; + hadjustment->lower = 0; + hadjustment->upper = MAX (allocation->width, icon_view->priv->width); + + if (hadjustment->value > hadjustment->upper - hadjustment->page_size) + gtk_adjustment_set_value (hadjustment, MAX (0, hadjustment->upper - hadjustment->page_size)); + + gtk_adjustment_changed (hadjustment); + + vadjustment->page_size = allocation->height; + vadjustment->page_increment = allocation->height * 0.9; + vadjustment->step_increment = allocation->height * 0.1; + vadjustment->lower = 0; + vadjustment->upper = MAX (allocation->height, icon_view->priv->height); + + if (vadjustment->value > vadjustment->upper - vadjustment->page_size) + gtk_adjustment_set_value (vadjustment, MAX (0, vadjustment->upper - vadjustment->page_size)); + + gtk_adjustment_changed (vadjustment); gtk_icon_view_layout (icon_view); } |