summaryrefslogtreecommitdiff
path: root/gtk/gtkstatusbar.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2005-05-16 04:54:35 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-05-16 04:54:35 +0000
commit9cde596b733991b1fed5853b41fbdee2b19931f5 (patch)
tree4419e6c748d4f2c665af185acbe7fb24753e2c46 /gtk/gtkstatusbar.c
parentf1cbeaff1e34179bbcb415e35ada465177bd4ac5 (diff)
downloadgtk+-9cde596b733991b1fed5853b41fbdee2b19931f5.tar.gz
Only shrink the label if we need to. (#169390, Felix Riemann)
2005-05-16 Matthias Clasen <mclasen@redhat.com> * gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Only shrink the label if we need to. (#169390, Felix Riemann)
Diffstat (limited to 'gtk/gtkstatusbar.c')
-rw-r--r--gtk/gtkstatusbar.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gtk/gtkstatusbar.c b/gtk/gtkstatusbar.c
index 13beb6ef3b..1cac81d9ab 100644
--- a/gtk/gtkstatusbar.c
+++ b/gtk/gtkstatusbar.c
@@ -850,13 +850,16 @@ gtk_statusbar_size_allocate (GtkWidget *widget,
}
else
{
- /* shrink the label to make room for the grip */
- *allocation = statusbar->label->allocation;
- allocation->width -= rect.width;
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- allocation->x += rect.width;
+ if (statusbar->label->allocation.width + rect.width > statusbar->frame->allocation.width)
+ {
+ /* shrink the label to make room for the grip */
+ *allocation = statusbar->label->allocation;
+ allocation->width -= rect.width;
+ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
+ allocation->x += rect.width;
- gtk_widget_size_allocate (statusbar->label, allocation);
+ gtk_widget_size_allocate (statusbar->label, allocation);
+ }
}
}
}