[clutter] a11y: Use existing clutter_actor_get_paint_visibility



commit 468f121f59ad0c10eac7ed42fb339e2861edae59
Author: Alejandro PiÃeiro <apinheiro igalia com>
Date:   Tue Jul 26 15:56:18 2011 +0200

    a11y: Use existing clutter_actor_get_paint_visibility
    
    Cally was initially created with Clutter 0.6 in mind. To check
    recursively the visibility of a actor a custom method was added.
    Since 0.8.4 clutter_actor_get_pain_visibility provides
    the same functionality.
    
    Also removed a dummy method. Lets add methods that provide a real
    functionality.

 clutter/cally/cally-actor.c |   56 +++---------------------------------------
 1 files changed, 4 insertions(+), 52 deletions(-)
---
diff --git a/clutter/cally/cally-actor.c b/clutter/cally/cally-actor.c
index 0302fd2..40f8d6e 100644
--- a/clutter/cally/cally-actor.c
+++ b/clutter/cally/cally-actor.c
@@ -153,8 +153,6 @@ static AtkObject*            cally_actor_ref_child           (AtkObject *obj,
                                                              gint       i);
 static AtkAttributeSet *     cally_actor_get_attributes      (AtkObject *obj);
 
-static gboolean             _cally_actor_all_parents_visible (ClutterActor *actor);
-
 /* ClutterContainer */
 static gint cally_actor_add_actor          (ClutterActor *container,
                                            ClutterActor *actor,
@@ -185,7 +183,6 @@ static void     cally_actor_remove_focus_handler     (AtkComponent *component,
                                                       guint handler_id);
 static void     cally_actor_focus_event              (AtkObject   *obj,
                                                       gboolean    focus_in);
-static gboolean _is_actor_on_screen                 (ClutterActor *actor);
 
 /* AtkAction.h */
 static void                  cally_actor_action_interface_init  (AtkActionIface *iface);
@@ -543,9 +540,11 @@ cally_actor_ref_state_set (AtkObject *obj)
         {
           atk_state_set_add_state (state_set, ATK_STATE_VISIBLE);
 
-          if (_is_actor_on_screen (actor) &&
-              _cally_actor_all_parents_visible (actor))
+          /* It would be good to also check if the actor is on screen,
+             like the old and removed clutter_actor_is_on_stage*/
+          if (clutter_actor_get_paint_visibility (actor))
             atk_state_set_add_state (state_set, ATK_STATE_SHOWING);
+
         }
 
       /* See focus section on implementation notes */
@@ -888,18 +887,6 @@ cally_actor_remove_focus_handler (AtkComponent *component,
   g_signal_handler_disconnect (component, handler_id);
 }
 
-/* This method should check if the actor is currently on screen */
-static gboolean
-_is_actor_on_screen (ClutterActor *actor)
-{
-  /* FIXME: FILL ME!!
-   * You could get some ideas from clutter_actor_is_on_stage, a private clutter
-   * function (note: it doesn't exists in the last versions of clutter)
-   * A occlusion check could be a good idea too
-   */
-
-  return TRUE;
-}
 
 /*
  *
@@ -1139,41 +1126,6 @@ cally_actor_action_get_keybinding (AtkAction *action,
 /* Misc functions */
 
 /*
- * Checks if the parent actor, and his parent, etc is all visible
- * Used to check the showing property
- *
- * FIXME: the same functionality is implemented on clutter since version 0.8.4
- * by clutter_actor_get_paint_visibility, so we should change this function
- * if a clutter version update is made
- */
-static gboolean
-_cally_actor_all_parents_visible (ClutterActor *actor)
-{
-  ClutterActor *iter_parent = NULL;
-  gboolean      result      = TRUE;
-  ClutterActor *stage       = NULL;
-
-  stage = clutter_actor_get_stage (actor);
-
-  for (iter_parent = clutter_actor_get_parent(actor); iter_parent;
-       iter_parent = clutter_actor_get_parent(iter_parent))
-    {
-      if (!CLUTTER_ACTOR_IS_VISIBLE (iter_parent))
-        {
-          /* stage parent */
-          if (iter_parent != stage)
-            result = FALSE;
-          else
-            result = TRUE;
-
-          break;
-        }
-    }
-
-  return result;
-}
-
-/*
  * This function is a signal handler for key_focus_in and
  * key_focus_out signal which gets emitted on a ClutterActor
  */



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