[gtk/wip/otte/for-master: 25/30] label: max-width-chars should be ignored sometimes




commit 81169d18c3d2f22263ea04361ac6944eef892855
Author: Benjamin Otte <otte redhat com>
Date:   Sat Nov 6 16:25:11 2021 +0100

    label: max-width-chars should be ignored sometimes
    
    When a widget is neither wrappable nor ellipsizable, we cannot modify
    the label to fit into any size. So we cannot respect max-width-chars.

 gtk/gtklabel.c                                        |  2 +-
 testsuite/reftests/label-small-max-width-chars.ref.ui | 11 +++++++++++
 testsuite/reftests/label-small-max-width-chars.ui     | 12 ++++++++++++
 testsuite/reftests/meson.build                        |  2 ++
 4 files changed, 26 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 46af2fb174..a82ec7bb77 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -1082,7 +1082,7 @@ get_static_size (GtkLabel       *self,
 
   get_default_widths (self, &minimum_default, &natural_default);
 
-  layout = gtk_label_get_measuring_layout (self, NULL, natural_default);
+  layout = gtk_label_get_measuring_layout (self, NULL, self->ellipsize ? natural_default : -1);
 
   if (orientation == GTK_ORIENTATION_HORIZONTAL)
     {
diff --git a/testsuite/reftests/label-small-max-width-chars.ref.ui 
b/testsuite/reftests/label-small-max-width-chars.ref.ui
new file mode 100644
index 0000000000..ec722f56ce
--- /dev/null
+++ b/testsuite/reftests/label-small-max-width-chars.ref.ui
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <object class="GtkWindow" id="window1">
+    <property name="decorated">0</property>
+    <child>
+      <object class="GtkLabel" id="label1">
+        <property name="label">Hello World</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/reftests/label-small-max-width-chars.ui 
b/testsuite/reftests/label-small-max-width-chars.ui
new file mode 100644
index 0000000000..d3236e8035
--- /dev/null
+++ b/testsuite/reftests/label-small-max-width-chars.ui
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <object class="GtkWindow" id="window1">
+    <property name="decorated">0</property>
+    <child>
+      <object class="GtkLabel" id="label1">
+        <property name="label">Hello World</property>
+        <property name="max-width-chars">2</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
index d6857190cf..9f40c0f3a0 100644
--- a/testsuite/reftests/meson.build
+++ b/testsuite/reftests/meson.build
@@ -359,6 +359,8 @@ testdata = [
   'label-sizing.ui',
   'label-small-ellipsized.ref.ui',
   'label-small-ellipsized.ui',
+  'label-small-max-width-chars.ref.ui',
+  'label-small-max-width-chars.ui',
   'label-text-shadow-clipping.css',
   'label-text-shadow-clipping.ref.ui',
   'label-text-shadow-clipping.ui',


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