cssnode: Make widget node use new matcher
authorBenjamin Otte <otte@redhat.com>
Mon, 9 Feb 2015 14:21:48 +0000 (15:21 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 18 Mar 2015 14:23:30 +0000 (15:23 +0100)
gtk/gtkcsswidgetnode.c

index d0ae3697fbd7919a42c6d56bba6df6d12dda8399..46785b4b509b38c91c15cfb443f7efc1f6776808 100644 (file)
@@ -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;