summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2012-11-23 16:09:22 +0100
committerAlexander Larsson <alexl@redhat.com>2012-11-23 16:13:27 +0100
commit3b48e562dde532e8c8be4a67f4e62b5538b1dca1 (patch)
tree6ac942a6f27448e5c75b5a472769f080f2aeb597
parentfc12246758a3f057dfa654e0d8f836e1898e1802 (diff)
downloadgtk+-3b48e562dde532e8c8be4a67f4e62b5538b1dca1.tar.gz
css: Make gtk_css_style_provider_get_change use the new rules tree
-rw-r--r--gtk/gtkcssprovider.c12
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;
}