Merge branch 'scale-fixes-2' into 'main'
scale: Fix two more drawing/sizing issues Closes #5171 and #6639 See merge request GNOME/gtk!7654
This commit is contained in:
@@ -382,7 +382,7 @@ gtk_scale_allocate_value (GtkScale *scale)
|
|||||||
|
|
||||||
case GTK_POS_TOP:
|
case GTK_POS_TOP:
|
||||||
value_alloc.x = slider_center_x - value_alloc.width / 2;
|
value_alloc.x = slider_center_x - value_alloc.width / 2;
|
||||||
value_alloc.y = slider_bounds.origin.y - value_alloc.height;
|
value_alloc.y = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GTK_POS_BOTTOM:
|
case GTK_POS_BOTTOM:
|
||||||
@@ -582,7 +582,7 @@ gtk_scale_size_allocate (GtkWidget *widget,
|
|||||||
&marks_height, NULL,
|
&marks_height, NULL,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
marks_rect.x = 0;
|
marks_rect.x = 0;
|
||||||
marks_rect.y = 0;
|
marks_rect.y = range_rect.y - marks_height;
|
||||||
marks_rect.width = range_rect.width;
|
marks_rect.width = range_rect.width;
|
||||||
marks_rect.height = marks_height;
|
marks_rect.height = marks_height;
|
||||||
gtk_widget_size_allocate (priv->top_marks_widget, &marks_rect, -1);
|
gtk_widget_size_allocate (priv->top_marks_widget, &marks_rect, -1);
|
||||||
@@ -1436,11 +1436,12 @@ gtk_scale_measure (GtkWidget *widget,
|
|||||||
GtkScale *scale = GTK_SCALE (widget);
|
GtkScale *scale = GTK_SCALE (widget);
|
||||||
GtkScalePrivate *priv = gtk_scale_get_instance_private (scale);
|
GtkScalePrivate *priv = gtk_scale_get_instance_private (scale);
|
||||||
GtkOrientation scale_orientation;
|
GtkOrientation scale_orientation;
|
||||||
|
int range_minimum, range_natural, scale_minimum = 0, scale_natural = 0;
|
||||||
|
|
||||||
GTK_WIDGET_CLASS (gtk_scale_parent_class)->measure (widget,
|
GTK_WIDGET_CLASS (gtk_scale_parent_class)->measure (widget,
|
||||||
orientation,
|
orientation,
|
||||||
for_size,
|
for_size,
|
||||||
minimum, natural,
|
&range_minimum, &range_natural,
|
||||||
minimum_baseline, natural_baseline);
|
minimum_baseline, natural_baseline);
|
||||||
|
|
||||||
scale_orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (widget));
|
scale_orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (widget));
|
||||||
@@ -1462,8 +1463,8 @@ gtk_scale_measure (GtkWidget *widget,
|
|||||||
|
|
||||||
marks_size = MAX (top_marks_size, bottom_marks_size);
|
marks_size = MAX (top_marks_size, bottom_marks_size);
|
||||||
|
|
||||||
*minimum = MAX (*minimum, marks_size);
|
scale_minimum = MAX (scale_minimum, marks_size);
|
||||||
*natural = MAX (*natural, marks_size);
|
scale_natural = MAX (scale_natural, marks_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->value_widget)
|
if (priv->value_widget)
|
||||||
@@ -1477,29 +1478,32 @@ gtk_scale_measure (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
if (orientation == GTK_ORIENTATION_HORIZONTAL)
|
if (orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||||
{
|
{
|
||||||
*minimum = MAX (*minimum, min);
|
scale_minimum = MAX (scale_minimum, min);
|
||||||
*natural = MAX (*natural, nat);
|
scale_natural = MAX (scale_natural, nat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
*minimum += min;
|
scale_minimum += min;
|
||||||
*natural += nat;
|
scale_natural += nat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (orientation == GTK_ORIENTATION_HORIZONTAL)
|
if (orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||||
{
|
{
|
||||||
*minimum += min;
|
scale_minimum += min;
|
||||||
*natural += nat;
|
scale_natural += nat;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
*minimum = MAX (*minimum, min);
|
scale_minimum = MAX (scale_minimum, min);
|
||||||
*natural = MAX (*natural, nat);
|
scale_natural = MAX (scale_natural, nat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*minimum = MAX (range_minimum, scale_minimum);
|
||||||
|
*natural = MAX (range_natural, scale_natural);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user