* clutter/clutter-actor.c (clutter_actor_get_paint_visibility):
authorNeil Roberts <neil@openedhand.com>
Thu, 13 Nov 2008 11:37:35 +0000 (11:37 +0000)
committerNeil Roberts <neil@openedhand.com>
Thu, 13 Nov 2008 11:37:35 +0000 (11:37 +0000)
Fix logic so that it won't return TRUE for a hidden stage.

ChangeLog
clutter/clutter-actor.c

index 6108028..c806c65 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-13  Neil Roberts  <neil@linux.intel.com>
+
+       * clutter/clutter-actor.c (clutter_actor_get_paint_visibility):
+       Fix logic so that it won't return TRUE for a hidden stage.
+
 2008-11-13  Emmanuele Bassi  <ebassi@linux.intel.com>
 
        * clutter/clutter-behaviour-ellipse.c:
index ef09d0a..ed6d59b 100644 (file)
@@ -5698,13 +5698,17 @@ clutter_actor_get_paint_visibility (ClutterActor *actor)
 {
   g_return_val_if_fail (CLUTTER_IS_ACTOR (actor), FALSE);
 
-  while (actor 
-         && !(CLUTTER_PRIVATE_FLAGS (actor) & CLUTTER_ACTOR_IS_TOPLEVEL)
-         && CLUTTER_ACTOR_IS_VISIBLE (actor))
-    actor = clutter_actor_get_parent (actor);
+  do
+    {
+      if (!CLUTTER_ACTOR_IS_VISIBLE (actor))
+        return FALSE;
 
-  return ((CLUTTER_PRIVATE_FLAGS (actor) & CLUTTER_ACTOR_IS_TOPLEVEL)
-          ? TRUE : FALSE);
+      if (CLUTTER_PRIVATE_FLAGS (actor) & CLUTTER_ACTOR_IS_TOPLEVEL)
+        return TRUE;
+    }
+  while ((actor = clutter_actor_get_parent (actor)) != NULL);
+
+  return FALSE;
 }
 
 /**