summaryrefslogtreecommitdiff
path: root/gtk/gtkcsscustomproperty.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-01-14 04:18:29 +0100
committerBenjamin Otte <otte@redhat.com>2012-02-02 03:13:38 +0100
commit25affd47661a4b4a309ac314a1a2c4f94bc3795c (patch)
treecb3cb619bd5353db5ac1f885289341b04403d11e /gtk/gtkcsscustomproperty.c
parentc2fb3158784f092782dbcfc09a4338299be64922 (diff)
downloadgtk+-25affd47661a4b4a309ac314a1a2c4f94bc3795c.tar.gz
css: Create SymbolicColor fallback properties for colors
Diffstat (limited to 'gtk/gtkcsscustomproperty.c')
-rw-r--r--gtk/gtkcsscustomproperty.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/gtk/gtkcsscustomproperty.c b/gtk/gtkcsscustomproperty.c
index 266544be48..fcb8a0f9c7 100644
--- a/gtk/gtkcsscustomproperty.c
+++ b/gtk/gtkcsscustomproperty.c
@@ -77,21 +77,32 @@ _gtk_css_custom_property_init (GtkCssCustomProperty *custom_property)
{
}
+static GType
+gtk_css_custom_property_get_specified_type (GParamSpec *pspec)
+{
+ if (pspec->value_type == GDK_TYPE_RGBA ||
+ pspec->value_type == GDK_TYPE_COLOR)
+ return GTK_TYPE_SYMBOLIC_COLOR;
+ else
+ return pspec->value_type;
+}
+
static void
gtk_css_custom_property_create_initial_value (GParamSpec *pspec,
GValue *value)
{
- g_value_init (value, pspec->value_type);
+ g_value_init (value, gtk_css_custom_property_get_specified_type (pspec));
if (pspec->value_type == GTK_TYPE_THEMING_ENGINE)
g_value_set_object (value, gtk_theming_engine_load (NULL));
else if (pspec->value_type == PANGO_TYPE_FONT_DESCRIPTION)
g_value_take_boxed (value, pango_font_description_from_string ("Sans 10"));
- else if (pspec->value_type == GDK_TYPE_RGBA)
+ else if (pspec->value_type == GDK_TYPE_RGBA ||
+ pspec->value_type == GDK_TYPE_COLOR)
{
GdkRGBA color;
gdk_rgba_parse (&color, "pink");
- g_value_set_boxed (value, &color);
+ g_value_take_boxed (value, gtk_symbolic_color_new_literal (&color));
}
else if (pspec->value_type == GTK_TYPE_BORDER)
{