From 2f273ba76a46dfe539f25f5fac5f15dc43a4f1c6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 8 Mar 2023 13:36:42 -0500 Subject: [PATCH] widget: Skip popovers in allocation Native widgets get allocated via their surface, so can skip them here. This avoids criticals when re-mapping a popover for the second time, as can be seen e.g. in the 'Selections' demo in gtk4-demo. --- gtk/gtkwidget.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 45fd23fb9c..702f9a72c1 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3889,7 +3889,8 @@ gtk_widget_ensure_allocate_on_children (GtkWidget *widget) child != NULL; child = _gtk_widget_get_next_sibling (child)) { - gtk_widget_ensure_allocate (child); + if (gtk_widget_should_layout (child)) + gtk_widget_ensure_allocate (child); } } -- 2.30.2