cssnode: Change style-changed signal
Instead of having old and new style, now have a GtkCssStyleChange opaque object that will compute the changes you are interested in for you. This simplifies change signal handlers quite a bit and avoids lots of repeated computation in every signal handler.
This commit is contained in:
@ -533,13 +533,15 @@ gtk_inspector_css_node_tree_set_object (GtkInspectorCssNodeTree *cnt,
|
||||
|
||||
static void
|
||||
gtk_inspector_css_node_tree_update_style (GtkCssNode *node,
|
||||
GtkCssStyle *old_style,
|
||||
GtkCssStyle *new_style,
|
||||
GtkCssStyleChange *change,
|
||||
GtkInspectorCssNodeTree *cnt)
|
||||
{
|
||||
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;
|
||||
@ -586,6 +588,7 @@ gtk_inspector_css_node_tree_set_node (GtkInspectorCssNodeTree *cnt,
|
||||
GtkCssNode *node)
|
||||
{
|
||||
GtkInspectorCssNodeTreePrivate *priv = cnt->priv;
|
||||
GtkCssStyleChange change;
|
||||
GString *s;
|
||||
GType type;
|
||||
const gchar *name;
|
||||
@ -598,11 +601,16 @@ 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,
|
||||
node ? gtk_css_node_get_style (node) : NULL,
|
||||
priv->node ? gtk_css_node_get_style (priv->node) : NULL,
|
||||
&change,
|
||||
cnt);
|
||||
|
||||
gtk_css_style_change_finish (&change);
|
||||
|
||||
gtk_inspector_css_node_tree_unset_node (cnt);
|
||||
|
||||
priv->node = node;
|
||||
|
||||
Reference in New Issue
Block a user