summaryrefslogtreecommitdiff
path: root/gtk/gtkwidget.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-01-20 00:33:34 +0100
committerBenjamin Otte <otte@redhat.com>2015-01-20 01:07:13 +0100
commitdbb8d1dd07a91171ba4a32119713c05e0483de91 (patch)
tree69cfffb22d7117e16e7253c637bb9afb0c797c2d /gtk/gtkwidget.c
parent39d6ec167eaf87b2f94a49cee7702aaf458ee46b (diff)
downloadgtk+-dbb8d1dd07a91171ba4a32119713c05e0483de91.tar.gz
stylecontext: Keep track of the CSS ID
This is necessary since we do the new caching and need to distinguish between styles with different IDs. Fixes various test cases.
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r--gtk/gtkwidget.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 65fd0959ff..66ad052db5 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -8712,7 +8712,8 @@ gtk_widget_set_name (GtkWidget *widget,
g_free (priv->name);
priv->name = new_name;
- _gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_NAME);
+ if (priv->context)
+ gtk_style_context_set_id (priv->context, priv->name);
g_object_notify (G_OBJECT (widget), "name");
}
@@ -16370,6 +16371,7 @@ gtk_widget_get_style_context (GtkWidget *widget)
priv->context = gtk_style_context_new ();
+ gtk_style_context_set_id (priv->context, priv->name);
gtk_style_context_set_state (priv->context, priv->state_flags);
gtk_style_context_set_scale (priv->context, gtk_widget_get_scale_factor (widget));