summaryrefslogtreecommitdiff
path: root/gtk/gtkcolorscale.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2012-02-02 01:16:00 -0500
committerMatthias Clasen <mclasen@redhat.com>2012-02-14 16:36:53 -0500
commit296cd814e5f4b41f34781a7dc03e61d7efffca60 (patch)
tree4a9704c35133593372ea9c1e2fe9641c3128b313 /gtk/gtkcolorscale.c
parent5bd4c234fb21909d9f769f6f2d44382f115d53bf (diff)
downloadgtk+-296cd814e5f4b41f34781a7dc03e61d7efffca60.tar.gz
Add an Adwaita hack
When the theme is Adwaita, let the thumb extend out over the colored trough.
Diffstat (limited to 'gtk/gtkcolorscale.c')
-rw-r--r--gtk/gtkcolorscale.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/gtk/gtkcolorscale.c b/gtk/gtkcolorscale.c
index 50c33f8e87..a56a886066 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);