From 468f121f59ad0c10eac7ed42fb339e2861edae59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Pi=C3=B1eiro?= Date: Tue, 26 Jul 2011 15:56:18 +0200 Subject: [PATCH] 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 file changed, 4 insertions(+), 52 deletions(-) diff --git a/clutter/cally/cally-actor.c b/clutter/cally/cally-actor.c index 0302fd2ec..40f8d6ecf 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; -} /* * @@ -1138,41 +1125,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