}
gtk_css_node_set_invalid (cssnode, FALSE);
-
+
g_clear_pointer (&cssnode->cache, gtk_css_node_style_cache_unref);
G_OBJECT_CLASS (gtk_css_node_parent_class)->dispose (object);
{
GtkStyleProvider *provider;
GtkCssNode *parent;
-
+
parent = gtk_css_node_get_parent (node);
if (parent == NULL)
return FALSE;
cssnode->style_is_invalid = TRUE;
gtk_css_node_set_invalid (cssnode, TRUE);
-
+
if (cssnode->first_child)
gtk_css_node_invalidate_style (cssnode->first_child);
-
+
if (cssnode->next_sibling)
gtk_css_node_invalidate_style (cssnode->next_sibling);
}
gtk_css_node_invalidate_style (node->next_sibling);
}
- gtk_css_node_invalidate (node, GTK_CSS_CHANGE_ANY_PARENT
+ gtk_css_node_invalidate (node, (old_parent != new_parent ? GTK_CSS_CHANGE_ANY_PARENT : 0)
| GTK_CSS_CHANGE_ANY_SIBLING
| GTK_CSS_CHANGE_NTH_CHILD
| (node->previous_sibling ? 0 : GTK_CSS_CHANGE_FIRST_CHILD)
g_return_if_fail (next_sibling == NULL || next_sibling->parent == parent);
g_return_if_fail (cssnode != next_sibling);
- if (cssnode->next_sibling == next_sibling &&
+ if (cssnode->next_sibling == next_sibling &&
cssnode->parent == parent)
return;
}
}
}
-
+
if (cssnode->previous_sibling)
{
if (gtk_css_node_is_last_child (cssnode))
change = gtk_css_static_style_get_change (gtk_css_style_get_static_style (style));
g_string_append (string, " ");
- gtk_css_change_print (change, string);
+ gtk_css_change_print (change, string);
}
g_string_append_c (string, '\n');