diff options
author | Benjamin Otte <otte@redhat.com> | 2021-11-06 16:25:11 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2021-11-09 03:41:43 +0100 |
commit | 81169d18c3d2f22263ea04361ac6944eef892855 (patch) | |
tree | 02a9fe2807689623d94f03bd0b4c6bb4a670b280 | |
parent | cce6a603a6aa054d2d5aaaf9b3b0671cb6a9970c (diff) | |
download | gtk+-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.c | 2 | ||||
-rw-r--r-- | testsuite/reftests/label-small-max-width-chars.ref.ui | 11 | ||||
-rw-r--r-- | testsuite/reftests/label-small-max-width-chars.ui | 12 | ||||
-rw-r--r-- | testsuite/reftests/meson.build | 2 |
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', |