[gtk/wip/otte/for-master] label: Handle width-chars > text width




commit 1e47b1c6100d112ddd5e17348256b004d04a6ad7
Author: Benjamin Otte <otte redhat com>
Date:   Tue Nov 9 17:49:40 2021 +0100

    label: Handle width-chars > text width
    
    This was broken in wrapping labels.
    
    Testcase included.

 gtk/gtklabel.c                                   |  1 +
 testsuite/reftests/label-wrap-width-chars.ref.ui | 12 ++++++++++++
 testsuite/reftests/label-wrap-width-chars.ui     | 13 +++++++++++++
 testsuite/reftests/meson.build                   |  2 ++
 4 files changed, 28 insertions(+)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index a82ec7bb77..4d84d6fc8d 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -1174,6 +1174,7 @@ get_width_for_height (GtkLabel *self,
       /* 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);
+      *minimum_width = MAX (*minimum_width, minimum_default);
 
       /* Natural width is natural width - or as wide as possible */
       layout = gtk_label_get_measuring_layout (self, layout, natural_default);
diff --git a/testsuite/reftests/label-wrap-width-chars.ref.ui 
b/testsuite/reftests/label-wrap-width-chars.ref.ui
new file mode 100644
index 0000000000..0fea15162b
--- /dev/null
+++ b/testsuite/reftests/label-wrap-width-chars.ref.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" translatable="yes">Hello World</property>
+        <property name="width-chars">20</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/reftests/label-wrap-width-chars.ui b/testsuite/reftests/label-wrap-width-chars.ui
new file mode 100644
index 0000000000..9c875e6601
--- /dev/null
+++ b/testsuite/reftests/label-wrap-width-chars.ui
@@ -0,0 +1,13 @@
+<?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" translatable="yes">Hello World</property>
+        <property name="wrap">1</property>
+        <property name="width-chars">20</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
index 83a06c9c80..8ef810ae7d 100644
--- a/testsuite/reftests/meson.build
+++ b/testsuite/reftests/meson.build
@@ -369,6 +369,8 @@ testdata = [
   'label-text-shadow-changes-modify-clip.ui',
   'label-width-chars-dont-shrink.ref.ui',
   'label-width-chars-dont-shrink.ui',
+  'label-wrap-width-chars.ref.ui',
+  'label-wrap-width-chars.ui',
   'label-wrapped-huge-max-width-chars.ref.ui',
   'label-wrapped-huge-max-width-chars.ui',
   # this seems to make assumptions on text positioning


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