diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-08-23 15:37:23 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-08-23 15:37:23 +0000 |
commit | a578e1134643b4076c34675cad79499b48eb7387 (patch) | |
tree | 293c640a1498c7d40eceec6cf0ddbb30cc86249d /gtk/gtklabel.c | |
parent | 31b681948c5492aab11bee1dfe4f6642447ab50a (diff) | |
download | gtk+-a578e1134643b4076c34675cad79499b48eb7387.tar.gz |
Fix #150822, reported by Christian Persch
2004-08-23 Matthias Clasen <mclasen@redhat.com>
Fix #150822, reported by Christian Persch
* gtk/gtklabel.c (gtk_label_ensure_layout): Set the layout width
appropriately when ellipsized.
(gtk_label_size_allocate): Only set the layout width if there
is a layout.
Diffstat (limited to 'gtk/gtklabel.c')
-rw-r--r-- | gtk/gtklabel.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 8f40c18f90..900668a0a0 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -1537,7 +1537,10 @@ gtk_label_ensure_layout (GtkLabel *label) pango_layout_set_alignment (label->layout, align); pango_layout_set_ellipsize (label->layout, label->ellipsize); - if (label->wrap) + if (label->ellipsize) + pango_layout_set_width (label->layout, + widget->allocation.width * PANGO_SCALE); + else if (label->wrap) { GtkWidgetAuxInfo *aux_info; gint longest_paragraph; @@ -1604,7 +1607,7 @@ gtk_label_ensure_layout (GtkLabel *label) pango_layout_set_width (label->layout, width); } } - else /* !label->wrap */ + else /* !label->wrap */ pango_layout_set_width (label->layout, -1); } } @@ -1687,7 +1690,10 @@ gtk_label_size_allocate (GtkWidget *widget, (* GTK_WIDGET_CLASS (parent_class)->size_allocate) (widget, allocation); if (label->ellipsize) - pango_layout_set_width (label->layout, allocation->width * PANGO_SCALE); + { + if (label->layout) + pango_layout_set_width (label->layout, allocation->width * PANGO_SCALE); + } if (label->select_info && label->select_info->window) { |