range: Avoid miscalculating highlight allocation

The slider gadget may be turned invisible as side-effect of
gtk_range_calc_slider(). If that happens,
gtk_css_gadget_get_content_allocation() returns { 0, 0, 0, 0},
which leads us to calculate a negative allocation for the highlight
node. Avoid this, by just reusing our already calculated slider
allocation in this case (it is not technically the same as the
content, allocation, but the difference hardly matter here.

https://bugzilla.gnome.org/show_bug.cgi?id=764022
This commit is contained in:
Matthias Clasen 2016-03-26 10:50:00 -04:00
parent 2374e2aa3b
commit e33188ad41

View File

@ -2006,8 +2006,8 @@ gtk_range_allocate_trough (GtkCssGadget *gadget,
{
GtkAllocation highlight_alloc, highlight_clip;
gtk_css_gadget_get_content_allocation (priv->slider_gadget,
&slider_alloc, NULL);
if (gtk_css_gadget_get_visible (priv->slider_gadget))
gtk_css_gadget_get_content_allocation (priv->slider_gadget, &slider_alloc, NULL);
highlight_alloc = *allocation;
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)