switch: Fix up baseline handling
We need to report a baseline for baseline alignment to work...
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user