[gtk/wip/otte/for-master: 1/2] Revert "label: Never measure more than max-width-chars"




commit 53acff167b2ccb60203b9de0e436be8dfa9f570d
Author: Benjamin Otte <otte redhat com>
Date:   Thu Nov 4 13:28:45 2021 +0100

    Revert "label: Never measure more than max-width-chars"
    
    This reverts commit ba44e7a228534ff066694ad97d25eaa23ec5f3af.
    
    The change was meant to revert to old GTK3 behavior but it actually
    broke new GTK4 behavior that is in use where max-width-chars is used to
    determine an ideal size, but where we don't want to limit the width to
    that size.
    
    So what happens is the reintroduction of GTK3-style lots of whitepsace
    bugs, and we really don't want those.
    
    We also don't want to break backwards compat if we can avoid it.
    
    So let's revert this.
    
    The reftest that was made for this purpose has been adapted.
    
    Fixes #4399

 gtk/gtklabel.c                                            | 15 +--------------
 ...l-max-width-chars-and-halign-and-infinite-width.ref.ui |  4 +---
 2 files changed, 2 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 661902a275..b9886dd471 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -1045,20 +1045,7 @@ get_height_for_width (GtkLabel *self,
   PangoLayout *layout;
   int text_height, baseline;
 
-  width *= PANGO_SCALE;
-  if (self->max_width_chars > -1)
-    {
-      int char_pixels, width_chars;
-
-      layout = gtk_label_get_measuring_layout (self, NULL, -1);
-      char_pixels = get_char_pixels (GTK_WIDGET (self), layout);
-      if (self->width_chars > self->max_width_chars)
-        width_chars = self->width_chars;
-      else
-        width_chars = self->max_width_chars;
-      width = MIN (char_pixels * width_chars, width);
-    }
-  layout = gtk_label_get_measuring_layout (self, NULL, width);
+  layout = gtk_label_get_measuring_layout (self, NULL, width * PANGO_SCALE);
 
   pango_layout_get_pixel_size (layout, NULL, &text_height);
 
diff --git a/testsuite/reftests/label-max-width-chars-and-halign-and-infinite-width.ref.ui 
b/testsuite/reftests/label-max-width-chars-and-halign-and-infinite-width.ref.ui
index 68c5d0a112..d3f075290b 100644
--- a/testsuite/reftests/label-max-width-chars-and-halign-and-infinite-width.ref.ui
+++ b/testsuite/reftests/label-max-width-chars-and-halign-and-infinite-width.ref.ui
@@ -8,9 +8,7 @@
         <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="max_width_chars">4</property>
+        <property name="label" translatable="yes">ABCDE ABCD</property>
         <attributes>
           <attribute name="font-desc" value="Monospace"></attribute>
         </attributes>


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