[gtk+/wip/cssnode3: 36/46] cssnode: Make path node create matcher without copying
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/cssnode3: 36/46] cssnode: Make path node create matcher without copying
- Date: Tue, 10 Feb 2015 01:58:08 +0000 (UTC)
commit 1e83ad30e869950e87da7bfef9658e1d705046a2
Author: Benjamin Otte <otte redhat com>
Date: Mon Feb 9 11:29:48 2015 +0100
cssnode: Make path node create matcher without copying
... the WidgetPath. This uses the functionality introduced in the
previous commits.
gtk/gtkcsspathnode.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcsspathnode.c b/gtk/gtkcsspathnode.c
index 1e41a05..659a1c7 100644
--- a/gtk/gtkcsspathnode.c
+++ b/gtk/gtkcsspathnode.c
@@ -36,6 +36,22 @@ gtk_css_path_node_invalidate (GtkCssNode *node)
}
}
+gboolean
+gtk_css_path_node_real_init_matcher (GtkCssNode *node,
+ GtkCssMatcher *matcher,
+ GtkWidgetPath **path_out)
+{
+ GtkCssPathNode *path_node = GTK_CSS_PATH_NODE (node);
+
+ if (path_node->path == NULL ||
+ gtk_widget_path_length (path_node->path) == 0)
+ return FALSE;
+
+ return _gtk_css_matcher_init (matcher,
+ path_node->path,
+ gtk_css_node_get_declaration (node));
+}
+
static GtkWidgetPath *
gtk_css_path_node_real_create_widget_path (GtkCssNode *node)
{
@@ -84,6 +100,7 @@ gtk_css_path_node_class_init (GtkCssPathNodeClass *klass)
GtkCssNodeClass *node_class = GTK_CSS_NODE_CLASS (klass);
node_class->invalidate = gtk_css_path_node_invalidate;
+ node_class->init_matcher = gtk_css_path_node_real_init_matcher;
node_class->create_widget_path = gtk_css_path_node_real_create_widget_path;
node_class->get_widget_path = gtk_css_path_node_real_get_widget_path;
node_class->get_style_provider = gtk_css_path_node_get_style_provider;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]