summaryrefslogtreecommitdiff
path: root/gtk/gtkcssshadowsvalue.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkcssshadowsvalue.c')
-rw-r--r--gtk/gtkcssshadowsvalue.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gtk/gtkcssshadowsvalue.c b/gtk/gtkcssshadowsvalue.c
index 2e09dae683..97fdf1cf95 100644
--- a/gtk/gtkcssshadowsvalue.c
+++ b/gtk/gtkcssshadowsvalue.c
@@ -210,7 +210,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_SHADOWS = {
gtk_css_value_shadows_print
};
-static GtkCssValue none_singleton = { &GTK_CSS_VALUE_SHADOWS, 1, 0, { NULL } };
+static GtkCssValue none_singleton = { &GTK_CSS_VALUE_SHADOWS, 1, 1, 0, { NULL } };
GtkCssValue *
_gtk_css_shadows_value_new_none (void)
@@ -223,6 +223,8 @@ gtk_css_shadows_value_new (GtkCssValue **values,
guint len)
{
GtkCssValue *result;
+ gboolean is_static;
+ int i;
g_return_val_if_fail (values != NULL, NULL);
g_return_val_if_fail (len > 0, NULL);
@@ -230,7 +232,18 @@ gtk_css_shadows_value_new (GtkCssValue **values,
if (len == 1)
return values[0];
+ is_static = TRUE;
+ for (i = 0; i < len; i++)
+ {
+ if (!values[i]->is_static)
+ {
+ is_static = FALSE;
+ break;
+ }
+ }
+
result = _gtk_css_value_alloc (&GTK_CSS_VALUE_SHADOWS, sizeof (GtkCssValue) + sizeof (GtkCssValue *) * (len - 1));
+ result->is_static = is_static;
result->len = len;
memcpy (&result->values[0], values, sizeof (GtkCssValue *) * len);