summaryrefslogtreecommitdiff
path: root/gtk/gtklabel.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-08-23 15:37:23 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-08-23 15:37:23 +0000
commita578e1134643b4076c34675cad79499b48eb7387 (patch)
tree293c640a1498c7d40eceec6cf0ddbb30cc86249d /gtk/gtklabel.c
parent31b681948c5492aab11bee1dfe4f6642447ab50a (diff)
downloadgtk+-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.c12
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)
{