From 26d536a69bb1f4ba5faa5563817161c1ed370295 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 15 Dec 2015 01:14:57 +0100 Subject: [PATCH] inspector: Fix quick-fix Constructing GtkCssStyleChange objects without styles is forbidden, so don't do it. Instead untangle the callback from the actual update function and call that untangled function directly. --- gtk/inspector/css-node-tree.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/gtk/inspector/css-node-tree.c b/gtk/inspector/css-node-tree.c index 8812398d3b..f1682cd8a3 100644 --- a/gtk/inspector/css-node-tree.c +++ b/gtk/inspector/css-node-tree.c @@ -532,16 +532,12 @@ gtk_inspector_css_node_tree_set_object (GtkInspectorCssNodeTree *cnt, } static void -gtk_inspector_css_node_tree_update_style (GtkCssNode *node, - GtkCssStyleChange *change, - GtkInspectorCssNodeTree *cnt) +gtk_inspector_css_node_tree_update_style (GtkInspectorCssNodeTree *cnt, + GtkCssStyle *new_style) { GtkInspectorCssNodeTreePrivate *priv = cnt->priv; - GtkCssStyle *new_style; gint i; - new_style = gtk_css_style_change_get_new_style (change); - for (i = 0; i < _gtk_css_style_property_get_n_properties (); i++) { GtkCssStyleProperty *prop; @@ -583,12 +579,19 @@ gtk_inspector_css_node_tree_update_style (GtkCssNode *node, } } +static void +gtk_inspector_css_node_tree_update_style_cb (GtkCssNode *node, + GtkCssStyleChange *change, + GtkInspectorCssNodeTree *cnt) +{ + gtk_inspector_css_node_tree_update_style (cnt, gtk_css_style_change_get_new_style (change)); +} + static void gtk_inspector_css_node_tree_set_node (GtkInspectorCssNodeTree *cnt, GtkCssNode *node) { GtkInspectorCssNodeTreePrivate *priv = cnt->priv; - GtkCssStyleChange change; GString *s; GType type; const gchar *name; @@ -601,21 +604,13 @@ gtk_inspector_css_node_tree_set_node (GtkInspectorCssNodeTree *cnt, if (node) g_object_ref (node); - gtk_css_style_change_init (&change, - node ? gtk_css_node_get_style (node) : NULL, - priv->node ? gtk_css_node_get_style (priv->node) : NULL); - - gtk_inspector_css_node_tree_update_style (node, - &change, - cnt); - - gtk_css_style_change_finish (&change); + gtk_inspector_css_node_tree_update_style (cnt, node ? gtk_css_node_get_style (node) : NULL); gtk_inspector_css_node_tree_unset_node (cnt); priv->node = node; - g_signal_connect (node, "style-changed", G_CALLBACK (gtk_inspector_css_node_tree_update_style), cnt); + g_signal_connect (node, "style-changed", G_CALLBACK (gtk_inspector_css_node_tree_update_style_cb), cnt); s = g_string_new (""); type = gtk_css_node_get_widget_type (node);