]> Pileus Git - ~andy/gtk/commitdiff
Fix #150822, reported by Christian Persch
authorMatthias Clasen <mclasen@redhat.com>
Mon, 23 Aug 2004 15:37:23 +0000 (15:37 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 23 Aug 2004 15:37:23 +0000 (15:37 +0000)
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.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtklabel.c

index be20df84d2d7ae601db98b8142e8305265c9f559..141a75195275af187b22620de6421c1107e33a2e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+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.
+
 2004-08-23  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/x11/gdkwindow-x11.c (gdk_window_focus): Support the latest
index be20df84d2d7ae601db98b8142e8305265c9f559..141a75195275af187b22620de6421c1107e33a2e 100644 (file)
@@ -1,3 +1,12 @@
+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.
+
 2004-08-23  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/x11/gdkwindow-x11.c (gdk_window_focus): Support the latest
index be20df84d2d7ae601db98b8142e8305265c9f559..141a75195275af187b22620de6421c1107e33a2e 100644 (file)
@@ -1,3 +1,12 @@
+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.
+
 2004-08-23  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/x11/gdkwindow-x11.c (gdk_window_focus): Support the latest
index be20df84d2d7ae601db98b8142e8305265c9f559..141a75195275af187b22620de6421c1107e33a2e 100644 (file)
@@ -1,3 +1,12 @@
+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.
+
 2004-08-23  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/x11/gdkwindow-x11.c (gdk_window_focus): Support the latest
index 8f40c18f906d8ceb0860ad561bdd6dfc5f18d88f..900668a0a0c5cad4d484517cf0ffb325cb37ac5c 100644 (file)
@@ -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)
     {