diff options
author | Benjamin Otte <otte@redhat.com> | 2015-11-09 01:42:41 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-11-09 01:48:14 +0100 |
commit | 0e75fbf39cf8b526995d3dd5514861aa786386a6 (patch) | |
tree | 08a0d35100e59b9a3dd8260cc806dc1a4ddc856c /gtk/gtkcssnode.c | |
parent | 4141a7d7c8a949585d5bfdc997c7651c5e3fc49f (diff) | |
download | gtk+-0e75fbf39cf8b526995d3dd5514861aa786386a6.tar.gz |
cssnode: Propagate NTH_LAST_CHILD changes properly
We were just catching the previous sibling before. Now we properly
invalidate all previous siblings (and also all other wiblings, but we
can think about optimizing that later).
Diffstat (limited to 'gtk/gtkcssnode.c')
-rw-r--r-- | gtk/gtkcssnode.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c index 7a06d6ae9e..aa278eb70a 100644 --- a/gtk/gtkcssnode.c +++ b/gtk/gtkcssnode.c @@ -1005,8 +1005,11 @@ gtk_css_node_set_visible (GtkCssNode *cssnode, | (cssnode->previous_sibling ? 0 : GTK_CSS_CHANGE_FIRST_CHILD)); if (cssnode->previous_sibling) - gtk_css_node_invalidate (cssnode->previous_sibling, GTK_CSS_CHANGE_NTH_LAST_CHILD - | (cssnode->next_sibling ? 0 : GTK_CSS_CHANGE_LAST_CHILD)); + { + if (cssnode->next_sibling) + gtk_css_node_invalidate (cssnode->previous_sibling, GTK_CSS_CHANGE_LAST_CHILD); + gtk_css_node_invalidate (cssnode->parent->first_child, GTK_CSS_CHANGE_NTH_LAST_CHILD); + } } gboolean |