clutter/actor: Cache the accessible object

Helpful for merging Cally inside Clutter, see next commits

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917>
This commit is contained in:
Bilal Elmoussaoui 2024-08-02 15:34:27 +02:00 committed by Marge Bot
parent d4c73c8341
commit 1e387e9117
2 changed files with 7 additions and 2 deletions

View File

@ -160,7 +160,6 @@ cally_root_ref_child (AtkObject *obj,
if (accessible_item) if (accessible_item)
g_object_ref (accessible_item); g_object_ref (accessible_item);
/* TODO: cache the accessible object */
return accessible_item; return accessible_item;
} }

View File

@ -545,6 +545,9 @@ struct _ClutterActorPrivate
{ {
ClutterContext *context; ClutterContext *context;
/* Accessibility */
AtkObject *accessible;
/* request mode */ /* request mode */
ClutterRequestMode request_mode; ClutterRequestMode request_mode;
@ -5434,7 +5437,10 @@ clutter_actor_get_accessible (ClutterActor *self)
static AtkObject * static AtkObject *
clutter_actor_real_get_accessible (ClutterActor *actor) clutter_actor_real_get_accessible (ClutterActor *actor)
{ {
return atk_gobject_accessible_for_object (G_OBJECT (actor)); if (actor->priv->accessible == NULL)
actor->priv->accessible = atk_gobject_accessible_for_object (G_OBJECT (actor));
return actor->priv->accessible;
} }
static AtkObject * static AtkObject *