[gtk+] cssnode: Propagate NTH_LAST_CHILD changes properly



commit 0e75fbf39cf8b526995d3dd5514861aa786386a6
Author: Benjamin Otte <otte redhat com>
Date:   Mon Nov 9 01:42:41 2015 +0100

    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).

 gtk/gtkcssnode.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index 7a06d6a..aa278eb 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]