[gtk+] range: draw slider on top of all contents



commit 0c8dbf07ce8b1341446c6f4a2cae0e7c63d2e614
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Sun Feb 28 10:00:15 2016 -0800

    range: draw slider on top of all contents
    
    This is so that e.g. the focus ring is drawn under the slider.

 gtk/gtkrange.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)
---
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index e8f04d5..b665ec2 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -2297,8 +2297,6 @@ gtk_range_render_trough (GtkCssGadget *gadget,
   if (priv->has_origin)
     gtk_css_gadget_draw (priv->highlight_gadget, cr);
 
-  gtk_css_gadget_draw (priv->slider_gadget, cr);
-
   return gtk_widget_has_visible_focus (widget);
 }
 
@@ -2318,13 +2316,11 @@ gtk_range_render (GtkCssGadget *gadget,
   /* HACK: we can't render the contents box directly because
    * GtkColorScale wants to omit the trough but still draw the slider...
    */
-  if (GTK_IS_COLOR_SCALE (widget))
-    {
-      gtk_css_gadget_draw (priv->slider_gadget, cr);
-      return FALSE;
-    }
+  if (!GTK_IS_COLOR_SCALE (widget))
+    gtk_css_gadget_draw (priv->contents_gadget, cr);
 
-  gtk_css_gadget_draw (priv->contents_gadget, cr);
+  /* Draw the slider last, so that e.g. the focus ring stays below it */
+  gtk_css_gadget_draw (priv->slider_gadget, cr);
 
   return FALSE;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]