struct _GtkCssSelectorTree
{
GtkCssSelector selector;
+ GtkCssSelectorTree *parent;
GtkCssSelectorTree *previous;
GtkCssSelectorTree *siblings;
gpointer *matches; /* pointers that we return as matches if selector matches */
static GtkCssSelectorTree *
-subdivide_infos (GList *infos)
+subdivide_infos (GList *infos, GtkCssSelectorTree *parent)
{
GHashTable *ht = gtk_css_selectors_count_initial_init ();
GList *l;
remaining = NULL;
tree = g_new0 (GtkCssSelectorTree, 1);
+ tree->parent = parent;
tree->selector = *max_selector;
exact_matches = NULL;
}
if (matched)
- tree->previous = subdivide_infos (matched);
+ tree->previous = subdivide_infos (matched, tree);
if (remaining)
- tree->siblings = subdivide_infos (remaining);
+ tree->siblings = subdivide_infos (remaining, parent);
return tree;
}
{
GtkCssSelectorTree *tree;
- tree = subdivide_infos (builder->infos);
+ tree = subdivide_infos (builder->infos, NULL);
#ifdef PRINT_TREE
{