[gtk/wip/otte/for-master] label: Handle width-chars > text width
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/otte/for-master] label: Handle width-chars > text width
- Date: Tue, 9 Nov 2021 17:35:13 +0000 (UTC)
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]