diff options
author | Alexander Larsson <alexl@redhat.com> | 2012-11-23 16:09:22 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2012-11-23 16:13:27 +0100 |
commit | 3b48e562dde532e8c8be4a67f4e62b5538b1dca1 (patch) | |
tree | 6ac942a6f27448e5c75b5a472769f080f2aeb597 | |
parent | fc12246758a3f057dfa654e0d8f836e1898e1802 (diff) | |
download | gtk+-3b48e562dde532e8c8be4a67f4e62b5538b1dca1.tar.gz |
css: Make gtk_css_style_provider_get_change use the new rules tree
-rw-r--r-- | gtk/gtkcssprovider.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index cdd31a4c41..0477aac6bc 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -1772,15 +1772,21 @@ gtk_css_style_provider_get_change (GtkStyleProviderPrivate *provider, GtkCssProviderPrivate *priv; GtkCssChange change = 0; int i; + guint *refs; + guint num_refs; css_provider = GTK_CSS_PROVIDER (provider); priv = css_provider->priv; - for (i = priv->rulesets->len - 1; i >= 0; i--) + refs = find_possible_rules (priv->rulesets_tree, matcher, &num_refs); + if (num_refs == 0) + return change; + + for (i = num_refs - 1; i >= 0; i--) { GtkCssRuleset *ruleset; - ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, i); + ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, refs[i]); if (ruleset->styles == NULL) continue; @@ -1791,6 +1797,8 @@ gtk_css_style_provider_get_change (GtkStyleProviderPrivate *provider, change |= gtk_css_ruleset_get_change (ruleset); } + g_free (refs); + return change; } |