diff options
Diffstat (limited to 'gtk/gtkcsslookupprivate.h')
-rw-r--r-- | gtk/gtkcsslookupprivate.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/gtk/gtkcsslookupprivate.h b/gtk/gtkcsslookupprivate.h index 49c2c0b1e9..7fcd530d7e 100644 --- a/gtk/gtkcsslookupprivate.h +++ b/gtk/gtkcsslookupprivate.h @@ -33,12 +33,13 @@ typedef struct _GtkCssLookup GtkCssLookup; typedef struct { GtkCssSection *section; GtkCssValue *value; + guint id; } GtkCssLookupValue; struct _GtkCssLookup { int ref_count; GtkBitmask *set_values; - GtkCssLookupValue values[GTK_CSS_PROPERTY_N_PROPERTIES]; + GArray *values; }; GtkCssLookup * gtk_css_lookup_new (void); @@ -62,7 +63,19 @@ static inline GtkCssLookupValue * gtk_css_lookup_get (GtkCssLookup *lookup, guint id) { - return &lookup->values[id]; + if (_gtk_bitmask_get (lookup->set_values, id)) + { + int i; + + for (i = 0; i < lookup->values->len; i++) + { + GtkCssLookupValue *value = &g_array_index (lookup->values, GtkCssLookupValue, i); + if (value->id == id) + return value; + } + } + + return NULL; } G_END_DECLS |