diff options
author | Matthias Clasen <mclasen@redhat.com> | 2012-02-02 01:16:00 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2012-02-14 16:36:53 -0500 |
commit | 296cd814e5f4b41f34781a7dc03e61d7efffca60 (patch) | |
tree | 4a9704c35133593372ea9c1e2fe9641c3128b313 /gtk/gtkcolorscale.c | |
parent | 5bd4c234fb21909d9f769f6f2d44382f115d53bf (diff) | |
download | gtk+-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.c | 28 |
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); |