From b42760da4def66ed6c081aff85960e74cbed8f7d Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Wed, 2 Aug 2023 18:43:45 +0300 Subject: [PATCH] centerlayout: Fix computing expand It was calling get_hexpand () / get_vexpand (), which only get whether the expand properties are set on the widget itself. Use compute_expand (), which properly walks the widget tree and finds whether exapnd is set on the widget or any of its descendants. Signed-off-by: Sergey Bugaev --- gtk/gtkcenterlayout.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gtk/gtkcenterlayout.c b/gtk/gtkcenterlayout.c index ce8382c1d1..d29a614878 100644 --- a/gtk/gtkcenterlayout.c +++ b/gtk/gtkcenterlayout.c @@ -106,16 +106,6 @@ gtk_center_layout_get_request_mode (GtkLayoutManager *layout_manager, : GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH; } -static gboolean -get_expand (GtkWidget *widget, - GtkOrientation orientation) -{ - if (orientation == GTK_ORIENTATION_HORIZONTAL) - return gtk_widget_get_hexpand (widget); - else - return gtk_widget_get_vexpand (widget); -} - static void gtk_center_layout_distribute (GtkCenterLayout *self, int for_size, @@ -165,21 +155,21 @@ gtk_center_layout_distribute (GtkCenterLayout *self, natural_size = sizes[1].natural_size; center_size = CLAMP (avail, sizes[1].minimum_size, natural_size); - center_expand = get_expand (self->center_widget, self->orientation); + center_expand = gtk_widget_compute_expand (self->center_widget, self->orientation); } if (self->start_widget) { avail = MIN ((size - needed_spacing - center_size) / 2, size - needed_spacing - (center_size + sizes[2].minimum_size)); start_size = CLAMP (avail, sizes[0].minimum_size, sizes[0].natural_size); - start_expand = get_expand (self->start_widget, self->orientation); + start_expand = gtk_widget_compute_expand (self->start_widget, self->orientation); } if (self->end_widget) { avail = MIN ((size - needed_spacing - center_size) / 2, size - needed_spacing - (center_size + sizes[0].minimum_size)); end_size = CLAMP (avail, sizes[2].minimum_size, sizes[2].natural_size); - end_expand = get_expand (self->end_widget, self->orientation); + end_expand = gtk_widget_compute_expand (self->end_widget, self->orientation); } if (self->center_widget) -- 2.30.2