forked from AuroraMiddleware/gtk
Fix #332604, reported by Joe Wreschnig, patch by Jan Arne Petersen and
2007-01-03 Matthias Clasen <mclasen@redhat.com> Fix #332604, reported by Joe Wreschnig, patch by Jan Arne Petersen and Behdad Esfahbod. * gtk/gtklabel.c (gtk_label_size_allocate): Only set the width of the layout when necessary. (get_layout_location): Use pango_layout_get_pixel_extents() instead of pango_layout_get_width(). svn path=/trunk/; revision=17052
This commit is contained in:
parent
5db7fbc8dc
commit
f5ca424987
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2007-01-03 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Fix #332604, reported by Joe Wreschnig, patch
|
||||
by Jan Arne Petersen and Behdad Esfahbod.
|
||||
|
||||
* gtk/gtklabel.c (gtk_label_size_allocate): Only
|
||||
set the width of the layout when necessary.
|
||||
(get_layout_location): Use pango_layout_get_pixel_extents()
|
||||
instead of pango_layout_get_width().
|
||||
|
||||
2007-01-03 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* modules/printbackends/cups/gtkprintbackendcups.c
|
||||
|
@ -2192,7 +2192,18 @@ gtk_label_size_allocate (GtkWidget *widget,
|
||||
if (label->ellipsize)
|
||||
{
|
||||
if (label->layout)
|
||||
pango_layout_set_width (label->layout, allocation->width * PANGO_SCALE);
|
||||
{
|
||||
gint width;
|
||||
PangoRectangle logical;
|
||||
|
||||
width = (allocation->width - label->misc.xpad * 2) * PANGO_SCALE;
|
||||
|
||||
pango_layout_set_width (label->layout, -1);
|
||||
pango_layout_get_extents (label->layout, NULL, &logical);
|
||||
|
||||
if (logical.width > width)
|
||||
pango_layout_set_width (label->layout, width);
|
||||
}
|
||||
}
|
||||
|
||||
if (label->select_info && label->select_info->window)
|
||||
@ -2285,12 +2296,14 @@ get_layout_location (GtkLabel *label,
|
||||
if (label->ellipsize || priv->width_chars > 0)
|
||||
{
|
||||
int width;
|
||||
PangoRectangle logical;
|
||||
|
||||
width = pango_layout_get_width (label->layout);
|
||||
if (width == -1)
|
||||
pango_layout_get_pixel_size (label->layout, &req_width, NULL);
|
||||
else
|
||||
req_width = PANGO_PIXELS (width);
|
||||
pango_layout_get_pixel_extents (label->layout, NULL, &logical);
|
||||
|
||||
req_width = logical.width;
|
||||
if (width != -1)
|
||||
req_width = MIN(PANGO_PIXELS (width), req_width);
|
||||
req_width += 2 * misc->xpad;
|
||||
}
|
||||
else
|
||||
req_width = widget->requisition.width;
|
||||
|
Loading…
Reference in New Issue
Block a user