summaryrefslogtreecommitdiff
path: root/gtk/gtkcssnode.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-11-09 01:42:41 +0100
committerBenjamin Otte <otte@redhat.com>2015-11-09 01:48:14 +0100
commit0e75fbf39cf8b526995d3dd5514861aa786386a6 (patch)
tree08a0d35100e59b9a3dd8260cc806dc1a4ddc856c /gtk/gtkcssnode.c
parent4141a7d7c8a949585d5bfdc997c7651c5e3fc49f (diff)
downloadgtk+-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.c7
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