summaryrefslogtreecommitdiff
path: root/gtk/gtkcsswidgetnode.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-02-09 15:21:48 +0100
committerBenjamin Otte <otte@redhat.com>2015-03-18 15:23:30 +0100
commit2143abe5ee1cfb0cfe93af781c621a9aba9cf6af (patch)
tree9524ef7dace47aebc4808d5028812bbd60e96435 /gtk/gtkcsswidgetnode.c
parent76ca9a9181a5d7e71896cf74753bff68df8752b2 (diff)
downloadgtk+-2143abe5ee1cfb0cfe93af781c621a9aba9cf6af.tar.gz
cssnode: Make widget node use new matcher
Diffstat (limited to 'gtk/gtkcsswidgetnode.c')
-rw-r--r--gtk/gtkcsswidgetnode.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c
index d0ae3697fb..46785b4b50 100644
--- a/gtk/gtkcsswidgetnode.c
+++ b/gtk/gtkcsswidgetnode.c
@@ -168,6 +168,23 @@ gtk_css_widget_node_validate (GtkCssNode *node,
return changes;
}
+gboolean
+gtk_css_widget_node_init_matcher (GtkCssNode *node,
+ GtkCssMatcher *matcher,
+ GtkWidgetPath **path_out)
+{
+ GtkCssWidgetNode *widget_node = GTK_CSS_WIDGET_NODE (node);
+
+ if (widget_node->widget == NULL)
+ return FALSE;
+
+ *path_out = _gtk_widget_create_path (widget_node->widget);
+
+ return _gtk_css_matcher_init (matcher,
+ *path_out,
+ gtk_css_node_get_declaration (node));
+}
+
static GtkWidgetPath *
gtk_css_widget_node_create_widget_path (GtkCssNode *node)
{
@@ -222,6 +239,7 @@ gtk_css_widget_node_class_init (GtkCssWidgetNodeClass *klass)
node_class->validate = gtk_css_widget_node_validate;
node_class->queue_validate = gtk_css_widget_node_queue_validate;
node_class->dequeue_validate = gtk_css_widget_node_dequeue_validate;
+ node_class->init_matcher = gtk_css_widget_node_init_matcher;
node_class->create_widget_path = gtk_css_widget_node_create_widget_path;
node_class->get_widget_path = gtk_css_widget_node_get_widget_path;
node_class->get_style_provider = gtk_css_widget_node_get_style_provider;