From: Sergey Bugaev Date: Wed, 2 Aug 2023 15:43:45 +0000 (+0300) Subject: centerlayout: Fix computing expand X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~14^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b42760da4def66ed6c081aff85960e74cbed8f7d;p=gtk4.git 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 --- 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)