diff options
author | Benjamin Otte <otte@redhat.com> | 2015-01-25 02:40:40 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-03-18 15:23:29 +0100 |
commit | 7bafb63ec3b04764f8986b82f1a6c6e1e73eea3b (patch) | |
tree | 96ae95411828e31923c024347b3034b99d92698b /gtk/gtkcsswidgetnode.c | |
parent | d79a44c1afaea14cd8442df61631154fe0bdd441 (diff) | |
download | gtk+-7bafb63ec3b04764f8986b82f1a6c6e1e73eea3b.tar.gz |
cssnode: Handle invalidation
Handle invalidation of node inside the CssNode code, don't do it in the
stylecontext.
Diffstat (limited to 'gtk/gtkcsswidgetnode.c')
-rw-r--r-- | gtk/gtkcsswidgetnode.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c index c9e156e619..0a4b17bbcc 100644 --- a/gtk/gtkcsswidgetnode.c +++ b/gtk/gtkcsswidgetnode.c @@ -19,10 +19,25 @@ #include "gtkcsswidgetnodeprivate.h" #include "gtkprivate.h" +#include "gtkstylecontextprivate.h" #include "gtkwidgetprivate.h" G_DEFINE_TYPE (GtkCssWidgetNode, gtk_css_widget_node, GTK_TYPE_CSS_NODE) +static void +gtk_css_widget_node_invalidate (GtkCssNode *node, + GtkCssChange change) +{ + GtkCssWidgetNode *widget_node = GTK_CSS_WIDGET_NODE (node); + GtkStyleContext *context; + + if (widget_node->widget == NULL) + return; + + context = gtk_widget_get_style_context (widget_node->widget); + _gtk_style_context_invalidate_root_node (context, change); +} + static GtkWidgetPath * gtk_css_widget_node_create_widget_path (GtkCssNode *node) { @@ -62,6 +77,7 @@ gtk_css_widget_node_class_init (GtkCssWidgetNodeClass *klass) { GtkCssNodeClass *node_class = GTK_CSS_NODE_CLASS (klass); + node_class->invalidate = gtk_css_widget_node_invalidate; node_class->create_widget_path = gtk_css_widget_node_create_widget_path; node_class->get_widget_path = gtk_css_widget_node_get_widget_path; } |