]> Pileus Git - ~andy/gtk/commitdiff
Add GtkWidgetPath parameter to gtk_style_provider_get_style().
authorCarlos Garnacho <carlosg@gnome.org>
Sun, 11 Apr 2010 18:30:24 +0000 (20:30 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:37:02 +0000 (15:37 +0100)
gtk/gtkstylecontext.c
gtk/gtkstyleprovider.c
gtk/gtkstyleprovider.h
gtk/gtkstyleset.c

index 9bf51e1369cd0b54fb317e81157b03f69a639f3f..f8f6c080405e72c7ea9c113dcb5336418c38131a 100644 (file)
@@ -136,9 +136,14 @@ rebuild_properties (GtkStyleContext *context)
       data = list->data;
       list = list->next;
 
-      provider_style = gtk_style_provider_get_style (data->provider);
-      gtk_style_set_merge (priv->store, provider_style, TRUE);
-      g_object_unref (provider_style);
+      provider_style = gtk_style_provider_get_style (data->provider,
+                                                     priv->widget_path);
+
+      if (provider_style)
+        {
+          gtk_style_set_merge (priv->store, provider_style, TRUE);
+          g_object_unref (provider_style);
+        }
     }
 }
 
index 18cca7b817e8342d093ffe069de2609a04719f3c..606f4a130e1dcb78a697a865a783c9badb088825 100644 (file)
@@ -48,7 +48,8 @@ gtk_style_provider_iface_init (gpointer g_iface)
 }
 
 GtkStyleSet *
-gtk_style_provider_get_style (GtkStyleProvider *provider)
+gtk_style_provider_get_style (GtkStyleProvider *provider,
+                              GtkWidgetPath    *path)
 {
   GtkStyleProviderIface *iface;
 
@@ -59,7 +60,7 @@ gtk_style_provider_get_style (GtkStyleProvider *provider)
   if (!iface->get_style)
     return NULL;
 
-  return iface->get_style (provider);
+  return iface->get_style (provider, path);
 }
 
 #define __GTK_STYLE_PROVIDER_C__
index ec5ee99937a3724b8a4b2e767d101ce9f6e19d68..6e12bb3c662ba97223314c9d83ad224d7d02d67c 100644 (file)
@@ -21,6 +21,7 @@
 #define __GTK_STYLE_PROVIDER_H__
 
 #include <glib-object.h>
+#include "gtkwidgetpath.h"
 #include "gtkstyleset.h"
 #include "gtkenums.h"
 
@@ -45,12 +46,14 @@ struct GtkStyleProviderIface
 {
   GTypeInterface g_iface;
 
-  GtkStyleSet * (* get_style) (GtkStyleProvider *provider);
+  GtkStyleSet * (* get_style) (GtkStyleProvider *provider,
+                               GtkWidgetPath    *path);
 };
 
 GType gtk_style_provider_get_type (void) G_GNUC_CONST;
 
-GtkStyleSet *gtk_style_provider_get_style (GtkStyleProvider *provider);
+GtkStyleSet *gtk_style_provider_get_style (GtkStyleProvider *provider,
+                                           GtkWidgetPath    *path);
 
 
 G_END_DECLS
index 19e1a97f65a64aedec2376983fe687b50a32edf8..73e33be6c92ef6794e4f9b2e8fc33c2a10e116a9 100644 (file)
@@ -134,7 +134,8 @@ gtk_style_set_finalize (GObject *object)
 }
 
 GtkStyleSet *
-gtk_style_set_get_style (GtkStyleProvider *provider)
+gtk_style_set_get_style (GtkStyleProvider *provider,
+                         GtkWidgetPath    *path)
 {
   /* Return style set itself */
   return g_object_ref (provider);