[gtk+] Add an Adwaita hack



commit 296cd814e5f4b41f34781a7dc03e61d7efffca60
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Feb 2 01:16:00 2012 -0500

    Add an Adwaita hack
    
    When the theme is Adwaita, let the thumb extend out over the
    colored trough.

 gtk/gtkcolorscale.c |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkcolorscale.c b/gtk/gtkcolorscale.c
index 50c33f8..a56a886 100644
--- a/gtk/gtkcolorscale.c
+++ b/gtk/gtkcolorscale.c
@@ -21,6 +21,7 @@
 
 #include "gtkcolorscale.h"
 #include "gtkhsv.h"
+#include "gtkorientable.h"
 #include "gtkstylecontext.h"
 #include "gtkintl.h"
 
@@ -200,6 +201,21 @@ create_surface (GtkColorScale *scale)
 }
 
 static gboolean
+scale_has_asymmetric_thumb (GtkWidget *widget)
+{
+  gchar *theme;
+  gboolean res;
+
+  g_object_get (gtk_widget_get_settings (widget),
+                "gtk-theme-name", &theme,
+                NULL);
+  res = strcmp ("Adwaita", theme) == 0;
+  g_free (theme);
+
+  return res;
+}
+
+static gboolean
 scale_draw (GtkWidget *widget,
             cairo_t   *cr)
 {
@@ -213,7 +229,17 @@ scale_draw (GtkWidget *widget,
 
   cairo_save (cr);
 
-  cairo_rectangle (cr, 1, 1, width - 2, height - 2);
+  if (scale_has_asymmetric_thumb (widget))
+    {
+      if (gtk_orientable_get_orientation (GTK_ORIENTABLE (widget)) == GTK_ORIENTATION_VERTICAL)
+        cairo_rectangle (cr, width / 2, 1, width / 2 - 1, height - 2);
+      else
+        cairo_rectangle (cr, 1, 1, width - 2, height / 2);
+    }
+  else
+    cairo_rectangle (cr, 1, 1, width - 2, height - 2);
+  g_free (theme);
+
   cairo_clip (cr);
   cairo_set_source_surface (cr, scale->priv->surface, 0, 0);
   cairo_paint (cr);



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