[gtk/benzea/fix-css-update] cssnode: Don't queue_validate/deque_validate invisible nodes



commit 7a5caf1bc063d400604fa642a4b40aa0aec19983
Author: Benjamin Berg <bberg redhat com>
Date:   Mon Jun 15 21:15:58 2020 +0200

    cssnode: Don't queue_validate/deque_validate invisible nodes
    
    Otherwise setting/unsetting the parrent may cause on an invisible widget
    may cause the style to be continuously updated.
    
    Fixes: #2849

 gtk/gtkcssnode.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index 1a9aa3e997..42d9eb6c6c 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -706,14 +706,14 @@ gtk_css_node_get_timestamp (GtkCssNode *cssnode)
 static void
 gtk_css_node_parent_was_unset (GtkCssNode *node)
 {
-  if (node->invalid)
+  if (node->visible && node->invalid)
     GTK_CSS_NODE_GET_CLASS (node)->queue_validate (node);
 }
 
 static void
 gtk_css_node_parent_will_be_set (GtkCssNode *node)
 {
-  if (node->invalid)
+  if (node->visible && node->invalid)
     GTK_CSS_NODE_GET_CLASS (node)->dequeue_validate (node);
 }
 


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