diff options
author | Alexander Larsson <alexl@redhat.com> | 2012-11-23 16:15:29 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2012-11-23 16:15:29 +0100 |
commit | 90bcb52293b3c733de7c0f551b1d865597d7fcd7 (patch) | |
tree | 11d6f5918c1b6c03dbc6d2b305ed878a75eff5c0 | |
parent | 3b48e562dde532e8c8be4a67f4e62b5538b1dca1 (diff) | |
download | gtk+-wip/css-optimize.tar.gz |
css: Add debug output for the css rules treewip/css-optimize
-rw-r--r-- | gtk/gtkcssprovider.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 0477aac6bc..6de03e846f 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -2817,6 +2817,30 @@ compare_refs_by_flags (gconstpointer pa, } static void +print_tree (GtkCssRulesetsTree *tree, int indent) +{ + if (tree == NULL) + return; + + switch (tree->type) + { + case RULESETS_TREE_TYPE_RULES: + printf ("%*sCheck rules %p len %d\n", indent, "", tree->u.rules.rules, tree->u.rules.num_rules); + break; + case RULESETS_TREE_TYPE_STATE: + printf ("%*sMatch state 0x%x ->\n", indent, "", tree->u.state.state); + print_tree (tree->u.state.matched, indent + 4); + break; + case RULESETS_TREE_TYPE_CLASS: + printf ("%*sMatch class %s ->\n", indent, "", g_quark_to_string (tree->u.class.class)); + print_tree (tree->u.class.matched, indent + 4); + break; + } + + print_tree (tree->next, indent); +} + +static void gtk_css_provider_postprocess (GtkCssProvider *css_provider) { GtkCssProviderPrivate *priv = css_provider->priv; @@ -2838,6 +2862,11 @@ gtk_css_provider_postprocess (GtkCssProvider *css_provider) priv->rulesets); priv->rulesets_tree = subdivide_by_state (priv, refs, 0, priv->rulesets->len, GTK_STATE_FLAG_BACKDROP); + if (g_getenv ("GTK_CSS_DEBUG_TREE")) + { + g_print ("Rulesets tree for proviced %p (%d rules)\n", css_provider, priv->rulesets->len); + print_tree (priv->rulesets_tree, 1); + } } static gboolean |