From cd5028315afd0c9071e7a0f55f86417aa045afa2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 21 Jul 2005 19:10:48 +0000 Subject: [PATCH] Be a bit more careful to not shrink the label to a negative width. 2005-07-21 Matthias Clasen * gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Be a bit more careful to not shrink the label to a negative width. (#311175, Thomas Vander Stichele) --- ChangeLog | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ ChangeLog.pre-2-8 | 4 ++++ gtk/gtkstatusbar.c | 12 ++++++------ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05dab03208..5398293b10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2005-07-21 Matthias Clasen + * gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Be + a bit more careful to not shrink the label to a negative + width. (#311175, Thomas Vander Stichele) + * gtk/gtk.symbols: mark gtk_socket_steal as deprecated. * configure.in: Bump the cairo requirement. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 05dab03208..5398293b10 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2005-07-21 Matthias Clasen + * gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Be + a bit more careful to not shrink the label to a negative + width. (#311175, Thomas Vander Stichele) + * gtk/gtk.symbols: mark gtk_socket_steal as deprecated. * configure.in: Bump the cairo requirement. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 05dab03208..5398293b10 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,9 @@ 2005-07-21 Matthias Clasen + * gtk/gtkstatusbar.c (gtk_statusbar_size_allocate): Be + a bit more careful to not shrink the label to a negative + width. (#311175, Thomas Vander Stichele) + * gtk/gtk.symbols: mark gtk_socket_steal as deprecated. * configure.in: Bump the cairo requirement. diff --git a/gtk/gtkstatusbar.c b/gtk/gtkstatusbar.c index 1cac81d9ab..8f4eb93a83 100644 --- a/gtk/gtkstatusbar.c +++ b/gtk/gtkstatusbar.c @@ -751,8 +751,8 @@ gtk_statusbar_expose_event (GtkWidget *widget, } static void -gtk_statusbar_size_request (GtkWidget *widget, - GtkRequisition *requisition) +gtk_statusbar_size_request (GtkWidget *widget, + GtkRequisition *requisition) { GtkStatusbar *statusbar; GtkShadowType shadow_type; @@ -826,7 +826,7 @@ gtk_statusbar_size_allocate (GtkWidget *widget, allocation->x += rect.width; } } - + /* chain up normally */ GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation); @@ -854,10 +854,10 @@ gtk_statusbar_size_allocate (GtkWidget *widget, { /* shrink the label to make room for the grip */ *allocation = statusbar->label->allocation; - allocation->width -= rect.width; + allocation->width = MAX (1, allocation->width - rect.width); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - allocation->x += rect.width; - + allocation->x += statusbar->label->allocation.width - allocation->width; + gtk_widget_size_allocate (statusbar->label, allocation); } }