[gtk+/gtk-style-context: 27/191] GtkWidget: Add widget path to style context.



commit 1aa755e242d717173bd092790bbedbdbfd8e1724
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Mar 20 13:30:05 2010 +0100

    GtkWidget: Add widget path to style context.

 gtk/gtkwidget.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index c0b5b47..52b0611 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -3497,6 +3497,7 @@ gtk_widget_realize (GtkWidget *widget)
 {
   GdkExtensionMode mode;
   GtkWidgetShapeInfo *shape_info;
+  GtkStyleContext *context;
   
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (GTK_WIDGET_ANCHORED (widget) ||
@@ -3545,6 +3546,17 @@ gtk_widget_realize (GtkWidget *widget)
       mode = gtk_widget_get_extension_events (widget);
       if (mode != GDK_EXTENSION_EVENTS_NONE)
         gtk_widget_set_extension_events_internal (widget, mode, NULL);
+
+      context = g_object_get_qdata (G_OBJECT (widget),
+                                    quark_style_context);
+      if (context)
+        {
+          GtkWidgetPath *path;
+
+          path = gtk_widget_get_path (widget);
+          gtk_style_context_set_path (context, path);
+          gtk_widget_path_free (path);
+        }
     }
 }
 
@@ -11529,6 +11541,15 @@ gtk_widget_get_style_context (GtkWidget *widget)
                                (GDestroyNotify) g_object_unref);
     }
 
+  if (GTK_WIDGET_REALIZED (widget))
+    {
+      GtkWidgetPath *path;
+
+      path = gtk_widget_get_path (widget);
+      gtk_style_context_set_path (context, path);
+      gtk_widget_path_free (path);
+    }
+
   return context;
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]