summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2021-11-06 16:25:11 +0100
committerBenjamin Otte <otte@redhat.com>2021-11-09 03:41:43 +0100
commit81169d18c3d2f22263ea04361ac6944eef892855 (patch)
tree02a9fe2807689623d94f03bd0b4c6bb4a670b280
parentcce6a603a6aa054d2d5aaaf9b3b0671cb6a9970c (diff)
downloadgtk+-81169d18c3d2f22263ea04361ac6944eef892855.tar.gz
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.
-rw-r--r--gtk/gtklabel.c2
-rw-r--r--testsuite/reftests/label-small-max-width-chars.ref.ui11
-rw-r--r--testsuite/reftests/label-small-max-width-chars.ui12
-rw-r--r--testsuite/reftests/meson.build2
4 files changed, 26 insertions, 1 deletions
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',