[gtk/wip/otte/for-master: 1/2] label: Redo measure() code




commit 8e27fc7f9b0f34880bdb3650ba141ad65883c094
Author: Benjamin Otte <otte redhat com>
Date:   Thu Nov 4 15:56:37 2021 +0100

    label: Redo measure() code
    
    The old code couldn't properly do height-for-width because it only
    computed the widest and smallest layout instead of looking at the actual
    passed in for-size.
    
    The label-sizing reftest has been adapted as the label code is now smart
    enough to always display the whole text and no longer requests a too
    small width-for-single-row when wrapping.

 gtk/gtklabel.c                         | 278 ++++++++++++++++++---------------
 testsuite/reftests/label-sizing.ref.ui | 108 +++++--------
 2 files changed, 191 insertions(+), 195 deletions(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index b9886dd471..3580deae1e 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -1018,8 +1018,7 @@ gtk_label_get_measuring_layout (GtkLabel    *self,
 }
 
 static int
-get_char_pixels (GtkWidget   *self,
-                 PangoLayout *layout)
+get_char_pixels (PangoLayout *layout)
 {
   PangoContext *context;
   PangoFontMetrics *metrics;
@@ -1035,159 +1034,184 @@ get_char_pixels (GtkWidget   *self,
 }
 
 static void
-get_height_for_width (GtkLabel *self,
-                      int       width,
-                      int      *minimum_height,
-                      int      *natural_height,
-                      int      *minimum_baseline,
-                      int      *natural_baseline)
+get_default_widths (GtkLabel    *self,
+                    int         *minimum,
+                    int         *natural)
 {
-  PangoLayout *layout;
-  int text_height, baseline;
-
-  layout = gtk_label_get_measuring_layout (self, NULL, width * PANGO_SCALE);
+  int char_pixels;
 
-  pango_layout_get_pixel_size (layout, NULL, &text_height);
+  if (self->width_chars < 0 && self->max_width_chars < 0)
+    {
+      if (minimum)
+        *minimum = -1;
+      if (natural)
+        *natural = -1;
+      return;
+    }
 
-  *minimum_height = text_height;
-  *natural_height = text_height;
+  gtk_label_ensure_layout (self);
+  char_pixels = get_char_pixels (self->layout);
 
-  baseline = pango_layout_get_baseline (layout) / PANGO_SCALE;
-  *minimum_baseline = baseline;
-  *natural_baseline = baseline;
+  if (minimum)
+    {
+      if (self->width_chars < 0)
+        *minimum = -1;
+      else
+        *minimum = char_pixels * self->width_chars;
+    }
 
-  g_object_unref (layout);
+  if (natural)
+    {
+      if (self->max_width_chars < 0)
+        *natural = -1;
+      else
+        *natural = char_pixels * MAX (self->width_chars, self->max_width_chars);
+    }
 }
 
 static void
-gtk_label_get_preferred_layout_size (GtkLabel *self,
-                                     PangoRectangle *smallest,
-                                     PangoRectangle *widest,
-                                     int *smallest_baseline,
-                                     int *widest_baseline)
+get_static_size (GtkLabel       *self,
+                 GtkOrientation  orientation,
+                 int            *minimum,
+                 int            *natural,
+                 int            *minimum_baseline,
+                 int            *natural_baseline)
 {
   PangoLayout *layout;
-  int char_pixels;
 
-  /* "width-chars" Hard-coded minimum width:
-   *    - minimum size should be MAX (width-chars, strlen ("..."));
-   *    - natural size should be MAX (width-chars, strlen (self->text));
-   *
-   * "max-width-chars" User specified maximum size requisition
-   *    - minimum size should be MAX (width-chars, 0)
-   *    - natural size should be MIN (max-width-chars, strlen (self->text))
-   *
-   *    For ellipsizing labels; if max-width-chars is specified: either it is used as
-   *    a minimum size or the label text as a minimum size (natural size still overflows).
-   *
-   *    For wrapping labels; A reasonable minimum size is useful to naturally layout
-   *    interfaces automatically. In this case if no "width-chars" is specified, the minimum
-   *    width will default to the wrap guess that gtk_label_ensure_layout() does.
-   */
-
-  /* Start off with the pixel extents of an as-wide-as-possible layout */
   layout = gtk_label_get_measuring_layout (self, NULL, -1);
 
-  if (self->width_chars > -1 || self->max_width_chars > -1)
-    char_pixels = get_char_pixels (GTK_WIDGET (self), layout);
-  else
-    char_pixels = 0;
-
-  pango_layout_get_extents (layout, NULL, widest);
-  widest->width = MAX (widest->width, char_pixels * self->width_chars);
-  widest->x = widest->y = 0;
-  *widest_baseline = pango_layout_get_baseline (layout) / PANGO_SCALE;
-
-  if (self->ellipsize || self->wrap)
+  if (orientation == GTK_ORIENTATION_HORIZONTAL)
     {
-      /* a layout with width 0 will be as small as humanly possible */
-      layout = gtk_label_get_measuring_layout (self,
-                                               layout,
-                                               self->width_chars > -1 ? char_pixels * self->width_chars
-                                                                      : 0);
-
-      pango_layout_get_extents (layout, NULL, smallest);
-      smallest->width = MAX (smallest->width, char_pixels * self->width_chars);
-      smallest->x = smallest->y = 0;
-
-      *smallest_baseline = pango_layout_get_baseline (layout) / PANGO_SCALE;
+      int minimum_default, natural_default;
 
-      if (self->max_width_chars > -1 && widest->width > char_pixels * self->max_width_chars)
+      pango_layout_get_size (layout, natural, NULL);
+      if (self->ellipsize)
         {
-          layout = gtk_label_get_measuring_layout (self,
-                                                   layout,
-                                                   MAX (smallest->width, char_pixels * 
self->max_width_chars));
-          pango_layout_get_extents (layout, NULL, widest);
-          widest->width = MAX (widest->width, char_pixels * self->width_chars);
-          widest->x = widest->y = 0;
-
-          *widest_baseline = pango_layout_get_baseline (layout) / PANGO_SCALE;
-        }
-
-      if (widest->width < smallest->width)
-        {
-          *smallest = *widest;
-          *smallest_baseline = *widest_baseline;
+          layout = gtk_label_get_measuring_layout (self, layout, 0);
+          pango_layout_get_size (layout, minimum, NULL);
+          /* yes, Pango ellipsizes even when that needs more space */
+          *minimum = MIN (*minimum, *natural);
         }
+      else
+        *minimum = *natural;
+
+      get_default_widths (self, &minimum_default, &natural_default);
+      if (minimum_default > *minimum)
+        *minimum = minimum_default;
+      if (natural_default > -1)
+        *natural = natural_default;
+      *natural = MAX (*minimum, *natural);
     }
   else
     {
-      *smallest = *widest;
-      *smallest_baseline = *widest_baseline;
+      pango_layout_get_size (layout, NULL, minimum);
+      *minimum_baseline = pango_layout_get_baseline (layout);
+
+      *natural = *minimum;
+      *natural_baseline = *minimum_baseline;
     }
 
   g_object_unref (layout);
 }
 
 static void
-gtk_label_get_preferred_size (GtkWidget      *widget,
-                              GtkOrientation  orientation,
-                              int            *minimum_size,
-                              int            *natural_size,
-                              int            *minimum_baseline,
-                              int            *natural_baseline)
+get_height_for_width (GtkLabel *self,
+                      int       width,
+                      int      *minimum_height,
+                      int      *natural_height,
+                      int      *minimum_baseline,
+                      int      *natural_baseline)
 {
-  GtkLabel      *self = GTK_LABEL (widget);
-  PangoRectangle widest_rect;
-  PangoRectangle smallest_rect;
-  int smallest_baseline;
-  int widest_baseline;
+  PangoLayout *layout;
+  int natural_width, text_height, baseline;
 
-  gtk_label_get_preferred_layout_size (self,
-                                       &smallest_rect, &widest_rect,
-                                       &smallest_baseline, &widest_baseline);
+  if (width < 0)
+    {
+      /* Minimum height is assuming infinite width */
+      layout = gtk_label_get_measuring_layout (self, NULL, -1);
+      pango_layout_get_size (layout, NULL, minimum_height);
+      baseline = pango_layout_get_baseline (layout);
+      *minimum_baseline = baseline;
+
+      /* Natural height is assuming natural width */
+      get_default_widths (self, NULL, &natural_width);
+
+      layout = gtk_label_get_measuring_layout (self, layout, natural_width);
+      pango_layout_get_size (layout, NULL, natural_height);
+      baseline = pango_layout_get_baseline (layout);
+      *natural_baseline = baseline;
+    }
+  else
+    {
+      /* minimum = natural for any given width */
+      layout = gtk_label_get_measuring_layout (self, NULL, width);
 
-  widest_rect.width  = PANGO_PIXELS_CEIL (widest_rect.width);
-  widest_rect.height = PANGO_PIXELS_CEIL (widest_rect.height);
+      pango_layout_get_size (layout, NULL, &text_height);
 
-  smallest_rect.width  = PANGO_PIXELS_CEIL (smallest_rect.width);
-  smallest_rect.height = PANGO_PIXELS_CEIL (smallest_rect.height);
+      *minimum_height = text_height;
+      *natural_height = text_height;
 
-  if (orientation == GTK_ORIENTATION_HORIZONTAL)
+      baseline = pango_layout_get_baseline (layout);
+      *minimum_baseline = baseline;
+      *natural_baseline = baseline;
+    }
+
+  g_object_unref (layout);
+}
+
+static void
+get_width_for_height (GtkLabel *self,
+                      int       height,
+                      int      *minimum_width,
+                      int      *natural_width)
+{
+  PangoLayout *layout;
+  int minimum_default, natural_default;
+
+  get_default_widths (self, &minimum_default, &natural_default);
+
+  if (height < 0)
     {
-      /* Normal desired width */
-      *minimum_size = smallest_rect.width;
-      *natural_size = widest_rect.width;
+      /* Minimum width is as many line breaks as possible */
+      layout = gtk_label_get_measuring_layout (self, NULL, MAX (minimum_default, 0));
+      pango_layout_get_size (layout, minimum_width, NULL);
+
+      /* Natural width is natural width - or as wide as possible */
+      layout = gtk_label_get_measuring_layout (self, layout, natural_default);
+      pango_layout_get_size (layout, natural_width, NULL);
+      *natural_width = MAX (*natural_width, natural_default);
+      *natural_width = MAX (*natural_width, *minimum_width);
     }
-  else /* GTK_ORIENTATION_VERTICAL */
+  else
     {
-      if (smallest_rect.height < widest_rect.height)
-        {
-          *minimum_size = smallest_rect.height;
-          *natural_size = widest_rect.height;
-          *minimum_baseline = smallest_baseline;
-          *natural_baseline = widest_baseline;
-        }
-      else
+      int min, max, mid, text_width, text_height;
+
+      /* binary search for the smallest width where the height doesn't
+       * eclipse the given height */
+      min = MAX (minimum_default, 0);
+      layout = gtk_label_get_measuring_layout (self, NULL, -1);
+      pango_layout_get_size (layout, &max, NULL);
+
+      while (min < max)
         {
-          *minimum_size = widest_rect.height;
-          *natural_size = smallest_rect.height;
-          *minimum_baseline = widest_baseline;
-          *natural_baseline = smallest_baseline;
+          mid = (min + max) / 2;
+          layout = gtk_label_get_measuring_layout (self, layout, mid);
+          pango_layout_get_size (layout, &text_width, &text_height);
+          if (text_width > mid)
+            min = mid = text_width;
+          if (text_height > height)
+            min = mid + 1;
+          else
+            max = text_width;
         }
+
+      *minimum_width = min;
+      *natural_width = min;
     }
-}
 
+  g_object_unref (layout);
+}
 
 static void
 gtk_label_measure (GtkWidget      *widget,
@@ -1200,14 +1224,22 @@ gtk_label_measure (GtkWidget      *widget,
 {
   GtkLabel *self = GTK_LABEL (widget);
 
-  if (orientation == GTK_ORIENTATION_VERTICAL && for_size != -1 && self->wrap)
-    {
-      gtk_label_clear_layout (self);
+  if (for_size > 0)
+    for_size *= PANGO_SCALE;
 
-      get_height_for_width (self, for_size, minimum, natural, minimum_baseline, natural_baseline);
-    }
+  if (!self->wrap)
+    get_static_size (self, orientation, minimum, natural, minimum_baseline, natural_baseline);
+  else if (orientation == GTK_ORIENTATION_VERTICAL)
+    get_height_for_width (self, for_size, minimum, natural, minimum_baseline, natural_baseline);
   else
-    gtk_label_get_preferred_size (widget, orientation, minimum, natural, minimum_baseline, natural_baseline);
+    get_width_for_height (self, for_size, minimum, natural);
+
+  *minimum = PANGO_PIXELS_CEIL (*minimum);
+  *natural = PANGO_PIXELS_CEIL (*natural);
+  if (*minimum_baseline > 0)
+    *minimum_baseline = PANGO_PIXELS_CEIL (*minimum_baseline);
+  if (*natural_baseline > 0)
+    *natural_baseline = PANGO_PIXELS_CEIL (*natural_baseline);
 }
 
 static void
diff --git a/testsuite/reftests/label-sizing.ref.ui b/testsuite/reftests/label-sizing.ref.ui
index 1616ef4f2f..4235424e80 100644
--- a/testsuite/reftests/label-sizing.ref.ui
+++ b/testsuite/reftests/label-sizing.ref.ui
@@ -212,8 +212,7 @@
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
                     </attributes>
@@ -224,8 +223,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
                     </attributes>
@@ -646,8 +644,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -659,8 +656,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -1092,8 +1088,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -1105,8 +1100,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -1982,8 +1976,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -1995,8 +1988,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -2016,8 +2008,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -2029,8 +2020,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -2434,8 +2424,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2448,8 +2437,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2470,8 +2458,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2484,8 +2471,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2898,8 +2884,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2912,8 +2897,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2934,8 +2918,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -2948,8 +2931,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">4</property>
                     <attributes>
@@ -3818,8 +3800,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -3831,8 +3812,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -3852,8 +3832,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -3865,8 +3844,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -4270,8 +4248,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4284,8 +4261,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4306,8 +4282,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4320,8 +4295,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4734,8 +4708,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4748,8 +4721,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4770,8 +4742,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -4784,8 +4755,7 @@ ABCD</property>
                     <property name="halign">start</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">8</property>
                     <attributes>
@@ -5654,8 +5624,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">12</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -5667,8 +5636,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="max_width_chars">12</property>
                     <attributes>
                       <attribute name="font-desc" value="Monospace"></attribute>
@@ -6104,8 +6072,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">12</property>
                     <attributes>
@@ -6118,8 +6085,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">4</property>
                     <property name="max_width_chars">12</property>
                     <attributes>
@@ -6566,8 +6532,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">end</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">12</property>
                     <attributes>
@@ -6580,8 +6545,7 @@ ABCD</property>
                     <property name="halign">end</property>
                     <property name="valign">start</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">ABCDE   
-ABCD</property>
+                    <property name="label" translatable="yes">ABCDE ABCD</property>
                     <property name="width_chars">8</property>
                     <property name="max_width_chars">12</property>
                     <attributes>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]