From: Matthias Clasen Date: Thu, 27 Apr 2023 20:18:20 +0000 (+0200) Subject: switch: Fix up baseline handling X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~355^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=12af75df9baaa8fb116d2d5bbfdb7d0dd4e243f2;p=gtk4.git switch: Fix up baseline handling We need to report a baseline for baseline alignment to work... --- diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c index 19f62f576d..31d2d234f5 100644 --- a/gtk/gtkswitch.c +++ b/gtk/gtkswitch.c @@ -301,13 +301,14 @@ gtk_switch_measure (GtkWidget *widget, GtkSwitch *self = GTK_SWITCH (widget); int slider_minimum, slider_natural; int on_nat, off_nat; + int on_baseline, off_baseline; gtk_widget_measure (self->slider, orientation, -1, &slider_minimum, &slider_natural, NULL, NULL); - gtk_widget_measure (self->on_image, orientation, for_size, NULL, &on_nat, NULL, NULL); - gtk_widget_measure (self->off_image, orientation, for_size, NULL, &off_nat, NULL, NULL); + gtk_widget_measure (self->on_image, orientation, for_size, NULL, &on_nat, NULL, &on_baseline); + gtk_widget_measure (self->off_image, orientation, for_size, NULL, &off_nat, NULL, &off_baseline); if (orientation == GTK_ORIENTATION_HORIZONTAL) { @@ -318,8 +319,12 @@ gtk_switch_measure (GtkWidget *widget, else { int text_height = MAX (on_nat, off_nat); + *minimum = MAX (slider_minimum, text_height); *natural = MAX (slider_natural, text_height); + + *minimum_baseline = MAX (on_baseline, off_baseline) + MAX ((slider_minimum - text_height) / 2, 0); + *natural_baseline = MAX (on_baseline, off_baseline) + MAX ((slider_natural - text_height) / 2, 0); } }