range: Ensure we don't underallocate the highlight gadget
This was causing warnings in HighContrast. https://bugzilla.gnome.org/show_bug.cgi?id=770614
This commit is contained in:
@ -1997,33 +1997,43 @@ gtk_range_allocate_trough (GtkCssGadget *gadget,
|
|||||||
if (priv->has_origin)
|
if (priv->has_origin)
|
||||||
{
|
{
|
||||||
GtkAllocation highlight_alloc, highlight_clip;
|
GtkAllocation highlight_alloc, highlight_clip;
|
||||||
|
int min, nat;
|
||||||
|
|
||||||
|
gtk_css_gadget_get_preferred_size (priv->highlight_gadget,
|
||||||
|
priv->orientation, -1,
|
||||||
|
&min, &nat,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
highlight_alloc = *allocation;
|
highlight_alloc = *allocation;
|
||||||
|
|
||||||
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||||
{
|
{
|
||||||
|
int x = slider_alloc.x + slider_alloc.width / 2;
|
||||||
|
|
||||||
if (!should_invert (range))
|
if (!should_invert (range))
|
||||||
{
|
{
|
||||||
highlight_alloc.x = allocation->x;
|
highlight_alloc.x = allocation->x;
|
||||||
highlight_alloc.width = slider_alloc.x + slider_alloc.width / 2 - allocation->x;
|
highlight_alloc.width = MAX (x - allocation->x, min);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
highlight_alloc.x = slider_alloc.x + slider_alloc.width / 2;
|
highlight_alloc.width = MAX (allocation->x + allocation->width - x, min);
|
||||||
highlight_alloc.width = allocation->x + allocation->width - highlight_alloc.x;
|
highlight_alloc.x = allocation->x + allocation->width - highlight_alloc.width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
int y = slider_alloc.y + slider_alloc.height / 2;
|
||||||
|
|
||||||
if (!should_invert (range))
|
if (!should_invert (range))
|
||||||
{
|
{
|
||||||
highlight_alloc.y = allocation->y;
|
highlight_alloc.y = allocation->y;
|
||||||
highlight_alloc.height = slider_alloc.y + slider_alloc.height / 2 - allocation->y;
|
highlight_alloc.height = MAX (y - allocation->y, min);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
highlight_alloc.y = slider_alloc.y + slider_alloc.height / 2;
|
highlight_alloc.height = MAX (allocation->y + allocation->height - y, min);
|
||||||
highlight_alloc.height = allocation->y + allocation->height - highlight_alloc.y;
|
highlight_alloc.y = allocation->y + allocation->height - highlight_alloc.height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user