[gtk/wip/otte/for-master: 1/3] boxlayout: Be more careful with what to consider natural size
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/otte/for-master: 1/3] boxlayout: Be more careful with what to consider natural size
- Date: Sat, 6 Nov 2021 02:40:56 +0000 (UTC)
commit 4ffa60be50f1ba5e8f78039cb0f5ea41b414864a
Author: Benjamin Otte <otte redhat com>
Date: Sat Nov 6 00:56:11 2021 +0100
boxlayout: Be more careful with what to consider natural size
Don't just use the natural size as the max size, the natural size
is the ideal size, not necessarily the maximum size.
Also check the nat size for opposite min size.
gtk/gtkboxlayout.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
---
diff --git a/gtk/gtkboxlayout.c b/gtk/gtkboxlayout.c
index 99feca37e5..20b462eb40 100644
--- a/gtk/gtkboxlayout.c
+++ b/gtk/gtkboxlayout.c
@@ -327,6 +327,8 @@ gtk_box_layout_compute_opposite_size_for_size (GtkBoxLayout *self,
child != NULL;
child = _gtk_widget_get_next_sibling (child))
{
+ int min_opposite, nat_for_min;
+
if (!gtk_widget_should_layout (child))
continue;
@@ -335,6 +337,22 @@ gtk_box_layout_compute_opposite_size_for_size (GtkBoxLayout *self,
-1,
&sizes[i].minimum_size, &sizes[i].natural_size,
NULL, NULL);
+ /* Don't just use the natural size as the max size,
+ * the natural size is the ideal size, not necessarily
+ * the maximum size.
+ * Also check the nat size for opposite min size.
+ */
+ gtk_widget_measure (child,
+ OPPOSITE_ORIENTATION (self->orientation),
+ -1,
+ &min_opposite, NULL,
+ NULL, NULL);
+ gtk_widget_measure (child,
+ self->orientation,
+ min_opposite,
+ NULL, &nat_for_min,
+ NULL, NULL);
+ sizes[i].natural_size = MAX (sizes[i].natural_size, nat_for_min);
children_minimum_size += sizes[i].minimum_size;
i += 1;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]