From: Benjamin Otte Date: Tue, 9 Nov 2021 16:49:40 +0000 (+0100) Subject: label: Handle width-chars > text width X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~5^2~157^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1e47b1c6100d112ddd5e17348256b004d04a6ad7;p=gtk4.git label: Handle width-chars > text width This was broken in wrapping labels. Testcase included. --- 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 @@ + + + + 0 + + + Hello World + 20 + + + + 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 @@ + + + + 0 + + + Hello World + 1 + 20 + + + + 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