From e33188ad41095112a4342d570ab441f18d2e1416 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 26 Mar 2016 10:50:00 -0400 Subject: [PATCH] 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 --- gtk/gtkrange.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 137070318e..62d8f9d856 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -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)