[gtk/wip/matthiasc/css-values] Add a way to dump css node change values



commit eb1474d451689348d4cbf7ee77312d2949ab4c2a
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jan 13 19:18:31 2020 -0500

    Add a way to dump css node change values
    
    Add a GTK_STYLE_CONTEXT_PRINT_SHOW_CHANGE flag that
    tells gtk_style_context_to_string to include the
    change values of nodes in the output. This will
    help debugging css change tracking.

 gtk/gtkcssnode.c      | 14 ++++++++++++++
 gtk/gtkstylecontext.h |  3 ++-
 2 files changed, 16 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index 8d93562233..ec8a74a237 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -19,6 +19,7 @@
 
 #include "gtkcssnodeprivate.h"
 
+#include "gtkcssstaticstyleprivate.h"
 #include "gtkcssanimatedstyleprivate.h"
 #include "gtkcssstylepropertyprivate.h"
 #include "gtkintl.h"
@@ -1391,6 +1392,19 @@ gtk_css_node_print (GtkCssNode                *cssnode,
   if (!cssnode->visible)
     g_string_append_c (string, ']');
 
+  if (flags & GTK_STYLE_CONTEXT_PRINT_SHOW_CHANGE)
+    {
+      GtkCssStyle *style = gtk_css_node_get_style (cssnode);
+      GtkCssChange change;
+
+      if (!GTK_IS_CSS_STATIC_STYLE (style))
+        style = GTK_CSS_ANIMATED_STYLE (style)->style;
+
+      change = gtk_css_static_style_get_change (GTK_CSS_STATIC_STYLE (style));
+      g_string_append (string, "    ");
+      gtk_css_change_print (change, string); 
+    }
+
   g_string_append_c (string, '\n');
 
   if (flags & GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE)
diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h
index b22bc106e6..c7c5b78c59 100644
--- a/gtk/gtkstylecontext.h
+++ b/gtk/gtkstylecontext.h
@@ -1053,7 +1053,8 @@ void        gtk_render_insertion_cursor
 typedef enum {
   GTK_STYLE_CONTEXT_PRINT_NONE         = 0,
   GTK_STYLE_CONTEXT_PRINT_RECURSE      = 1 << 0,
-  GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE   = 1 << 1
+  GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE   = 1 << 1,
+  GTK_STYLE_CONTEXT_PRINT_SHOW_CHANGE  = 1 << 2
 } GtkStyleContextPrintFlags;
 
 GDK_AVAILABLE_IN_ALL


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