diff options
author | Benjamin Otte <otte@redhat.com> | 2015-01-31 16:30:05 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-03-18 15:23:29 +0100 |
commit | 03ac5f310bc6b11907d1c4bda152b0191fad7661 (patch) | |
tree | 2ab6497069f61a0e019560b81d026887f7fa7da0 /gtk/gtkcssnode.c | |
parent | 6dc6af674c8c120192c15a943819fe2a152ddfe9 (diff) | |
download | gtk+-03ac5f310bc6b11907d1c4bda152b0191fad7661.tar.gz |
cssnode: Add gtk_style_context_get_style_provider()
... and use it when looking up properties.
Diffstat (limited to 'gtk/gtkcssnode.c')
-rw-r--r-- | gtk/gtkcssnode.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c index 9ff83aa6f7..1f846d9341 100644 --- a/gtk/gtkcssnode.c +++ b/gtk/gtkcssnode.c @@ -21,6 +21,7 @@ #include "gtkcsstransientnodeprivate.h" #include "gtkdebug.h" +#include "gtksettingsprivate.h" G_DEFINE_TYPE (GtkCssNode, gtk_css_node, G_TYPE_OBJECT) @@ -96,6 +97,15 @@ gtk_css_node_real_get_widget_path (GtkCssNode *cssnode) return NULL; } +static GtkStyleProviderPrivate * +gtk_css_node_real_get_style_provider (GtkCssNode *cssnode) +{ + if (cssnode->parent) + return gtk_css_node_get_style_provider (cssnode->parent); + + return GTK_STYLE_PROVIDER_PRIVATE (_gtk_settings_get_style_cascade (gtk_settings_get_default (), 1)); +} + static void gtk_css_node_class_init (GtkCssNodeClass *klass) { @@ -109,6 +119,7 @@ gtk_css_node_class_init (GtkCssNodeClass *klass) klass->set_invalid = gtk_css_node_real_set_invalid; klass->create_widget_path = gtk_css_node_real_create_widget_path; klass->get_widget_path = gtk_css_node_real_get_widget_path; + klass->get_style_provider = gtk_css_node_real_get_style_provider; } static void @@ -424,3 +435,8 @@ gtk_css_node_get_widget_path (GtkCssNode *cssnode) return GTK_CSS_NODE_GET_CLASS (cssnode)->get_widget_path (cssnode); } +GtkStyleProviderPrivate * +gtk_css_node_get_style_provider (GtkCssNode *cssnode) +{ + return GTK_CSS_NODE_GET_CLASS (cssnode)->get_style_provider (cssnode); +} |