[gtk+/wip/actor: 36/42] xxx: cssactor



commit 2db4ee0de5efb1be5b70a12e11af8ea8ff053adc
Author: Benjamin Otte <otte redhat com>
Date:   Mon Dec 17 16:12:56 2012 +0100

    xxx: cssactor

 gtk/actors/gtkcssactor.c |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 deletions(-)
---
diff --git a/gtk/actors/gtkcssactor.c b/gtk/actors/gtkcssactor.c
index 3b6120b..7b7e23b 100644
--- a/gtk/actors/gtkcssactor.c
+++ b/gtk/actors/gtkcssactor.c
@@ -21,6 +21,7 @@
 
 #include "gtkcssactorprivate.h"
 
+#include "gtkcontainer.h"
 #include "gtkcssboxprivate.h"
 #include "gtkcssmatcherprivate.h"
 #include "gtkdebug.h"
@@ -29,6 +30,7 @@
 #include "gtkstylecontext.h"
 #include "gtkstylecontextprivate.h"
 #include "gtktypebuiltins.h"
+#include "gtkwidgetactorprivate.h"
 #include "gtkwidgetprivate.h"
 
 struct _GtkCssActorPrivate {
@@ -230,15 +232,38 @@ _gtk_css_actor_get_style_context (GtkCssActor *actor)
 }
 
 static gboolean
+actor_needs_to_use_widget_path (GtkActor *actor)
+{
+  GtkWidget *widget, *parent;
+
+  if (!GTK_IS_WIDGET_ACTOR (actor))
+    return FALSE;
+
+  widget = _gtk_actor_get_widget (actor);
+  if (widget == NULL)
+    return FALSE;
+
+  parent = gtk_widget_get_parent (widget);
+  if (parent == NULL)
+    return FALSE;
+
+  if (GTK_CONTAINER_GET_CLASS (parent)->get_path_for_child == 
+      GTK_CONTAINER_CLASS(g_type_class_peek (GTK_TYPE_CONTAINER))->get_path_for_child)
+    return FALSE;
+
+  return TRUE;
+}
+
+static gboolean
 gtk_css_actor_source_init_css_matcher (GtkCssMatcher *matcher,
                                        gpointer       actor)
 {
-  return FALSE;
-#if 0
+  if (actor_needs_to_use_widget_path (actor))
+    return FALSE;
+
   _gtk_css_matcher_actor_init (matcher, actor);
 
   return TRUE;
-#endif
 }
 
 static GtkWidgetPath *



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