clutter: Rename CallyText to TextAccessible

Moving it to the correct namespace and making it final & private
As there is nothing subclassing it

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917>
This commit is contained in:
Bilal Elmoussaoui
2024-08-02 18:10:44 +02:00
committed by Marge Bot
parent 71f5d30d7f
commit 471d8d913e
5 changed files with 143 additions and 189 deletions

View File

@ -1,4 +1,4 @@
/* CALLY - The Clutter Accessibility Implementation Library /* Clutter.
* *
* Copyright (C) 2009 Igalia, S.L. * Copyright (C) 2009 Igalia, S.L.
* *
@ -20,30 +20,16 @@
#pragma once #pragma once
#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <clutter/clutter.h> can be included directly."
#endif
#include "clutter/clutter-actor-accessible.h" #include "clutter/clutter-actor-accessible.h"
G_BEGIN_DECLS G_BEGIN_DECLS
#define CALLY_TYPE_TEXT (cally_text_get_type ()) #define CLUTTER_TYPE_TEXT_ACCESSIBLE (clutter_text_accessible_get_type ())
CLUTTER_EXPORT G_DECLARE_FINAL_TYPE (ClutterTextAccessible,
G_DECLARE_DERIVABLE_TYPE (CallyText, clutter_text_accessible,
cally_text, CLUTTER,
CALLY, TEXT_ACCESSIBLE,
TEXT,
ClutterActorAccessible) ClutterActorAccessible)
typedef struct _CallyText CallyText;
typedef struct _CallyTextClass CallyTextClass;
struct _CallyTextClass
{
/*< private >*/
ClutterActorAccessibleClass parent_class;
};
G_END_DECLS G_END_DECLS

View File

@ -1,4 +1,4 @@
/* CALLY - The Clutter Accessibility Implementation Library /* Clutter.
* *
* Copyright (C) 2009 Igalia, S.L. * Copyright (C) 2009 Igalia, S.L.
* *
@ -27,18 +27,17 @@
*/ */
/** /**
* CallyText: * ClutterTextAccessible:
* *
* Implementation of the ATK interfaces for a [class@Clutter.Text] * Implementation of the ATK interfaces for a [class@Clutter.Text]
* *
* #CallyText implements the required ATK interfaces of * #ClutterTextAccessible implements the required ATK interfaces of
* [class@Clutter.Text], #AtkText and #AtkEditableText * [class@Clutter.Text], #AtkText and #AtkEditableText
*/ */
#include "clutter.h"
#include "config.h" #include "config.h"
#include "clutter/cally-text.h" #include "clutter/clutter-text-accessible-private.h"
#include "clutter/clutter-actor-private.h" #include "clutter/clutter-actor-private.h"
#include "clutter/clutter-main.h" #include "clutter/clutter-main.h"
@ -54,7 +53,7 @@ static AtkStateSet* cally_text_ref_state_set (AtkObject *obj);
/* atkaction */ /* atkaction */
static void _cally_text_activate_action (ClutterActorAccessible *accessible_actor); static void _cally_text_activate_action (ClutterActorAccessible *accessible_actor);
static void _check_activate_action (CallyText *cally_text, static void _check_activate_action (ClutterTextAccessible *self,
ClutterText *clutter_text); ClutterText *clutter_text);
/* AtkText */ /* AtkText */
@ -127,8 +126,8 @@ static void _cally_text_delete_text_cb (ClutterText *c
gint end_pos, gint end_pos,
gpointer data); gpointer data);
static gboolean _idle_notify_insert (gpointer data); static gboolean _idle_notify_insert (gpointer data);
static void _notify_insert (CallyText *cally_text); static void _notify_insert (ClutterTextAccessible *cally_text);
static void _notify_delete (CallyText *cally_text); static void _notify_delete (ClutterTextAccessible *cally_text);
/* AtkEditableText */ /* AtkEditableText */
static void cally_text_editable_text_interface_init (AtkEditableTextIface *iface); static void cally_text_editable_text_interface_init (AtkEditableTextIface *iface);
@ -145,7 +144,7 @@ static void cally_text_delete_text (AtkEditable
static void cally_text_notify_clutter (GObject *obj, static void cally_text_notify_clutter (GObject *obj,
GParamSpec *pspec); GParamSpec *pspec);
static gboolean _check_for_selection_change (CallyText *cally_text, static gboolean _check_for_selection_change (ClutterTextAccessible *cally_text,
ClutterText *clutter_text); ClutterText *clutter_text);
/* Misc functions */ /* Misc functions */
@ -188,23 +187,25 @@ static const gchar * cally_text_action_get_name (AtkAction *action,
typedef void (* ClutterActorActionFunc) (ClutterActorAccessible *accessible_actor); typedef void (* ClutterActorActionFunc) (ClutterActorAccessible *accessible_actor);
/*< private > /*< private >
* CallyTextActionInfo: * ClutterTextAccessibleActionInfo:
* @name: name of the action * @name: name of the action
* @do_action_func: callback * @do_action_func: callback
* *
* Utility structure to maintain the different actions added to the * Utility structure to maintain the different actions added to the
* #CallyActor * #ClutterActorAcessible
*/ */
typedef struct _CallyTextActionInfo typedef struct _ClutterTextAccessibleActionInfo
{ {
gchar *name; gchar *name;
ClutterActorActionFunc do_action_func; ClutterActorActionFunc do_action_func;
} CallyTextActionInfo; } ClutterTextAccessibleActionInfo;
typedef struct _CallyTextPrivate struct _ClutterTextAccessible
{ {
ClutterActorAccessible parent;
/* Cached ClutterText values*/ /* Cached ClutterText values*/
gint cursor_position; gint cursor_position;
gint selection_bound; gint selection_bound;
@ -221,15 +222,14 @@ typedef struct _CallyTextPrivate
gint length_delete; gint length_delete;
/* action */ /* action */
CallyTextActionInfo *activate_action; ClutterTextAccessibleActionInfo *activate_action;
GQueue *action_queue; GQueue *action_queue;
guint action_idle_handler; guint action_idle_handler;
} CallyTextPrivate; };
G_DEFINE_TYPE_WITH_CODE (CallyText, G_DEFINE_FINAL_TYPE_WITH_CODE (ClutterTextAccessible,
cally_text, clutter_text_accessible,
CLUTTER_TYPE_ACTOR_ACCESSIBLE, CLUTTER_TYPE_ACTOR_ACCESSIBLE,
G_ADD_PRIVATE (CallyText)
G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT,
cally_text_text_interface_init) cally_text_text_interface_init)
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION,
@ -238,7 +238,7 @@ G_DEFINE_TYPE_WITH_CODE (CallyText,
cally_text_editable_text_interface_init)); cally_text_editable_text_interface_init));
static void static void
cally_text_class_init (CallyTextClass *klass) clutter_text_accessible_class_init (ClutterTextAccessibleClass *klass)
{ {
GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
AtkObjectClass *class = ATK_OBJECT_CLASS (klass); AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
@ -250,36 +250,32 @@ cally_text_class_init (CallyTextClass *klass)
} }
static void static void
cally_text_init (CallyText *cally_text) clutter_text_accessible_init (ClutterTextAccessible *self)
{ {
CallyTextPrivate *priv = cally_text_get_instance_private (cally_text); self->cursor_position = 0;
self->selection_bound = 0;
priv->cursor_position = 0; self->signal_name_insert = NULL;
priv->selection_bound = 0; self->position_insert = -1;
self->length_insert = -1;
self->insert_idle_handler = 0;
priv->signal_name_insert = NULL; self->signal_name_delete = NULL;
priv->position_insert = -1; self->position_delete = -1;
priv->length_insert = -1; self->length_delete = -1;
priv->insert_idle_handler = 0; self->action_queue = g_queue_new ();
priv->signal_name_delete = NULL;
priv->position_delete = -1;
priv->length_delete = -1;
priv->action_queue = g_queue_new ();
} }
static void static void
cally_text_finalize (GObject *obj) cally_text_finalize (GObject *obj)
{ {
CallyText *cally_text = CALLY_TEXT (obj); ClutterTextAccessible *self = CLUTTER_TEXT_ACCESSIBLE (obj);
CallyTextPrivate *priv =
cally_text_get_instance_private (cally_text);
g_clear_handle_id (&priv->insert_idle_handler, g_source_remove); g_clear_handle_id (&self->insert_idle_handler, g_source_remove);
g_clear_handle_id (&priv->action_idle_handler, g_source_remove); g_clear_handle_id (&self->action_idle_handler, g_source_remove);
g_clear_pointer (&priv->action_queue, g_queue_free); g_clear_pointer (&self->action_queue, g_queue_free);
G_OBJECT_CLASS (cally_text_parent_class)->finalize (obj); G_OBJECT_CLASS (clutter_text_accessible_parent_class)->finalize (obj);
} }
/* atkobject.h */ /* atkobject.h */
@ -289,19 +285,17 @@ cally_text_real_initialize(AtkObject *obj,
gpointer data) gpointer data)
{ {
ClutterText *clutter_text = NULL; ClutterText *clutter_text = NULL;
CallyText *cally_text = NULL; ClutterTextAccessible *self = NULL;
CallyTextPrivate *priv;
ATK_OBJECT_CLASS (cally_text_parent_class)->initialize (obj, data); ATK_OBJECT_CLASS (clutter_text_accessible_parent_class)->initialize (obj, data);
g_return_if_fail (CLUTTER_TEXT (data)); g_return_if_fail (CLUTTER_TEXT (data));
cally_text = CALLY_TEXT (obj); self = CLUTTER_TEXT_ACCESSIBLE (obj);
priv = cally_text_get_instance_private (cally_text);
clutter_text = CLUTTER_TEXT (data); clutter_text = CLUTTER_TEXT (data);
priv->cursor_position = clutter_text_get_cursor_position (clutter_text); self->cursor_position = clutter_text_get_cursor_position (clutter_text);
priv->selection_bound = clutter_text_get_selection_bound (clutter_text); self->selection_bound = clutter_text_get_selection_bound (clutter_text);
g_signal_connect (clutter_text, g_signal_connect (clutter_text,
"notify", "notify",
@ -310,12 +304,12 @@ cally_text_real_initialize(AtkObject *obj,
g_signal_connect (clutter_text, "insert-text", g_signal_connect (clutter_text, "insert-text",
G_CALLBACK (_cally_text_insert_text_cb), G_CALLBACK (_cally_text_insert_text_cb),
cally_text); self);
g_signal_connect (clutter_text, "delete-text", g_signal_connect (clutter_text, "delete-text",
G_CALLBACK (_cally_text_delete_text_cb), G_CALLBACK (_cally_text_delete_text_cb),
cally_text); self);
_check_activate_action (cally_text, clutter_text); _check_activate_action (self, clutter_text);
if (clutter_text_get_password_char (clutter_text) != 0) if (clutter_text_get_password_char (clutter_text) != 0)
atk_object_set_role (obj, ATK_ROLE_PASSWORD_TEXT); atk_object_set_role (obj, ATK_ROLE_PASSWORD_TEXT);
@ -329,7 +323,7 @@ cally_text_ref_state_set (AtkObject *obj)
AtkStateSet *result = NULL; AtkStateSet *result = NULL;
ClutterActor *actor = NULL; ClutterActor *actor = NULL;
result = ATK_OBJECT_CLASS (cally_text_parent_class)->ref_state_set (obj); result = ATK_OBJECT_CLASS (clutter_text_accessible_parent_class)->ref_state_set (obj);
actor = CLUTTER_ACTOR_FROM_ACCESSIBLE (obj); actor = CLUTTER_ACTOR_FROM_ACCESSIBLE (obj);
@ -1559,26 +1553,24 @@ _cally_text_delete_text_cb (ClutterText *clutter_text,
gint end_pos, gint end_pos,
gpointer data) gpointer data)
{ {
CallyText *cally_text = NULL; ClutterTextAccessible *self = NULL;
CallyTextPrivate *priv;
g_return_if_fail (CALLY_IS_TEXT (data)); g_return_if_fail (CLUTTER_IS_TEXT_ACCESSIBLE (data));
/* Ignore zero length deletions */ /* Ignore zero length deletions */
if (end_pos - start_pos == 0) if (end_pos - start_pos == 0)
return; return;
cally_text = CALLY_TEXT (data); self = CLUTTER_TEXT_ACCESSIBLE (data);
priv = cally_text_get_instance_private (cally_text);
if (!priv->signal_name_delete) if (!self->signal_name_delete)
{ {
priv->signal_name_delete = "text_changed::delete"; self->signal_name_delete = "text_changed::delete";
priv->position_delete = start_pos; self->position_delete = start_pos;
priv->length_delete = end_pos - start_pos; self->length_delete = end_pos - start_pos;
} }
_notify_delete (cally_text); _notify_delete (self);
} }
static void static void
@ -1588,28 +1580,26 @@ _cally_text_insert_text_cb (ClutterText *clutter_text,
gint *position, gint *position,
gpointer data) gpointer data)
{ {
CallyText *cally_text = NULL; ClutterTextAccessible *self = NULL;
CallyTextPrivate *priv;
g_return_if_fail (CALLY_IS_TEXT (data)); g_return_if_fail (CLUTTER_IS_TEXT_ACCESSIBLE (data));
cally_text = CALLY_TEXT (data); self = CLUTTER_TEXT_ACCESSIBLE (data);
priv = cally_text_get_instance_private (cally_text);
if (!priv->signal_name_insert) if (!self->signal_name_insert)
{ {
priv->signal_name_insert = "text_changed::insert"; self->signal_name_insert = "text_changed::insert";
priv->position_insert = *position; self->position_insert = *position;
priv->length_insert = g_utf8_strlen (new_text, new_text_length); self->length_insert = g_utf8_strlen (new_text, new_text_length);
} }
/* /*
* The signal will be emitted when the cursor position is updated, * The signal will be emitted when the cursor position is updated,
* or in an idle handler if it not updated. * or in an idle handler if it not updated.
*/ */
if (priv->insert_idle_handler == 0) if (self->insert_idle_handler == 0)
priv->insert_idle_handler = clutter_threads_add_idle (_idle_notify_insert, self->insert_idle_handler = clutter_threads_add_idle (_idle_notify_insert,
cally_text); self);
} }
/***** atkeditabletext.h ******/ /***** atkeditabletext.h ******/
@ -1696,17 +1686,17 @@ cally_text_notify_clutter (GObject *obj,
GParamSpec *pspec) GParamSpec *pspec)
{ {
ClutterText *clutter_text = NULL; ClutterText *clutter_text = NULL;
CallyText *cally_text = NULL; ClutterTextAccessible *self = NULL;
AtkObject *atk_obj = NULL; AtkObject *atk_obj = NULL;
clutter_text = CLUTTER_TEXT (obj); clutter_text = CLUTTER_TEXT (obj);
atk_obj = clutter_actor_get_accessible (CLUTTER_ACTOR (obj)); atk_obj = clutter_actor_get_accessible (CLUTTER_ACTOR (obj));
cally_text = CALLY_TEXT (atk_obj); self = CLUTTER_TEXT_ACCESSIBLE (atk_obj);
if (g_strcmp0 (pspec->name, "cursor-position") == 0) if (g_strcmp0 (pspec->name, "cursor-position") == 0)
{ {
/* the selection can change also for the cursor position */ /* the selection can change also for the cursor position */
if (_check_for_selection_change (cally_text, clutter_text)) if (_check_for_selection_change (self, clutter_text))
g_signal_emit_by_name (atk_obj, "text_selection_changed"); g_signal_emit_by_name (atk_obj, "text_selection_changed");
g_signal_emit_by_name (atk_obj, "text_caret_moved", g_signal_emit_by_name (atk_obj, "text_caret_moved",
@ -1714,32 +1704,30 @@ cally_text_notify_clutter (GObject *obj,
} }
else if (g_strcmp0 (pspec->name, "selection-bound") == 0) else if (g_strcmp0 (pspec->name, "selection-bound") == 0)
{ {
if (_check_for_selection_change (cally_text, clutter_text)) if (_check_for_selection_change (self, clutter_text))
g_signal_emit_by_name (atk_obj, "text_selection_changed"); g_signal_emit_by_name (atk_obj, "text_selection_changed");
} }
else if (g_strcmp0 (pspec->name, "activatable") == 0) else if (g_strcmp0 (pspec->name, "activatable") == 0)
{ {
_check_activate_action (cally_text, clutter_text); _check_activate_action (self, clutter_text);
} }
} }
static gboolean static gboolean
_check_for_selection_change (CallyText *cally_text, _check_for_selection_change (ClutterTextAccessible *self,
ClutterText *clutter_text) ClutterText *clutter_text)
{ {
gboolean ret_val = FALSE; gboolean ret_val = FALSE;
gint clutter_pos = -1; gint clutter_pos = -1;
gint clutter_bound = -1; gint clutter_bound = -1;
CallyTextPrivate *priv =
cally_text_get_instance_private (cally_text);
clutter_pos = clutter_text_get_cursor_position (clutter_text); clutter_pos = clutter_text_get_cursor_position (clutter_text);
clutter_bound = clutter_text_get_selection_bound (clutter_text); clutter_bound = clutter_text_get_selection_bound (clutter_text);
if (clutter_pos != clutter_bound) if (clutter_pos != clutter_bound)
{ {
if (clutter_pos != priv->cursor_position || if (clutter_pos != self->cursor_position ||
clutter_bound != priv->selection_bound) clutter_bound != self->selection_bound)
/* /*
* This check is here as this function can be called for * This check is here as this function can be called for
* notification of selection_bound and current_pos. The * notification of selection_bound and current_pos. The
@ -1752,11 +1740,11 @@ _check_for_selection_change (CallyText *cally_text,
else else
{ {
/* We had a selection */ /* We had a selection */
ret_val = (priv->cursor_position != priv->selection_bound); ret_val = (self->cursor_position != self->selection_bound);
} }
priv->cursor_position = clutter_pos; self->cursor_position = clutter_pos;
priv->selection_bound = clutter_bound; self->selection_bound = clutter_bound;
return ret_val; return ret_val;
} }
@ -1764,44 +1752,37 @@ _check_for_selection_change (CallyText *cally_text,
static gboolean static gboolean
_idle_notify_insert (gpointer data) _idle_notify_insert (gpointer data)
{ {
CallyText *cally_text = CALLY_TEXT (data); ClutterTextAccessible *self = CLUTTER_TEXT_ACCESSIBLE (data);
CallyTextPrivate *priv = self->insert_idle_handler = 0;
cally_text_get_instance_private (cally_text);
priv->insert_idle_handler = 0; _notify_insert (self);
_notify_insert (cally_text);
return FALSE; return FALSE;
} }
static void static void
_notify_insert (CallyText *cally_text) _notify_insert (ClutterTextAccessible *self)
{ {
CallyTextPrivate *priv = if (self->signal_name_insert)
cally_text_get_instance_private (cally_text);
if (priv->signal_name_insert)
{ {
g_signal_emit_by_name (cally_text, g_signal_emit_by_name (self,
priv->signal_name_insert, self->signal_name_insert,
priv->position_insert, self->position_insert,
priv->length_insert); self->length_insert);
priv->signal_name_insert = NULL; self->signal_name_insert = NULL;
} }
} }
static void static void
_notify_delete (CallyText *cally_text) _notify_delete (ClutterTextAccessible *self)
{ {
CallyTextPrivate *priv = if (self->signal_name_delete)
cally_text_get_instance_private (cally_text);
if (priv->signal_name_delete)
{ {
g_signal_emit_by_name (cally_text, g_signal_emit_by_name (self,
priv->signal_name_delete, self->signal_name_delete,
priv->position_delete, self->position_delete,
priv->length_delete); self->length_delete);
priv->signal_name_delete = NULL; self->signal_name_delete = NULL;
} }
} }
/* atkaction */ /* atkaction */
@ -1817,27 +1798,25 @@ _cally_text_activate_action (ClutterActorAccessible *accessible_actor)
} }
static void static void
_check_activate_action (CallyText *cally_text, _check_activate_action (ClutterTextAccessible *self,
ClutterText *clutter_text) ClutterText *clutter_text)
{ {
CallyTextPrivate *priv =
cally_text_get_instance_private (cally_text);
if (clutter_text_get_activatable (clutter_text)) if (clutter_text_get_activatable (clutter_text))
{ {
if (priv->activate_action != NULL) if (self->activate_action != NULL)
return; return;
priv->activate_action = g_new0 (CallyTextActionInfo, 1); self->activate_action = g_new0 (ClutterTextAccessibleActionInfo, 1);
priv->activate_action->name = g_strdup ("activate"); self->activate_action->name = g_strdup ("activate");
priv->activate_action->do_action_func = _cally_text_activate_action; self->activate_action->do_action_func = _cally_text_activate_action;
} }
else else
{ {
if (priv->activate_action == NULL) if (self->activate_action == NULL)
return; return;
g_clear_pointer (&priv->activate_action->name, g_free); g_clear_pointer (&self->activate_action->name, g_free);
g_clear_pointer (&priv->activate_action, g_free); g_clear_pointer (&self->activate_action, g_free);
} }
} }
@ -1854,22 +1833,20 @@ cally_text_action_interface_init (AtkActionIface *iface)
static gboolean static gboolean
idle_do_action (gpointer data) idle_do_action (gpointer data)
{ {
ClutterActorAccessible *actor_accessible = ClutterTextAccessible *self =
CLUTTER_ACTOR_ACCESSIBLE (data); CLUTTER_TEXT_ACCESSIBLE (data);
CallyTextPrivate *priv = self->action_idle_handler = 0;
cally_text_get_instance_private (CALLY_TEXT (actor_accessible));
priv->action_idle_handler = 0;
/* state is defunct*/ /* state is defunct*/
g_assert (CLUTTER_ACTOR_FROM_ACCESSIBLE (actor_accessible) != NULL); g_assert (CLUTTER_ACTOR_FROM_ACCESSIBLE (self) != NULL);
while (!g_queue_is_empty (priv->action_queue)) while (!g_queue_is_empty (self->action_queue))
{ {
CallyTextActionInfo *info = NULL; ClutterTextAccessibleActionInfo *info = NULL;
info = (CallyTextActionInfo *) g_queue_pop_head (priv->action_queue); info = (ClutterTextAccessibleActionInfo *) g_queue_pop_head (self->action_queue);
info->do_action_func (actor_accessible); info->do_action_func (CLUTTER_ACTOR_ACCESSIBLE (self));
} }
return FALSE; return FALSE;
@ -1880,17 +1857,15 @@ cally_text_action_do_action (AtkAction *action,
gint index) gint index)
{ {
g_autoptr (AtkStateSet) set = NULL; g_autoptr (AtkStateSet) set = NULL;
CallyText *cally_actor; ClutterTextAccessible *self;
CallyTextPrivate *priv;
/* Only activate action is supported*/ /* Only activate action is supported*/
g_return_val_if_fail (index != 0, FALSE); g_return_val_if_fail (index != 0, FALSE);
g_return_val_if_fail (CALLY_IS_TEXT (action), FALSE); g_return_val_if_fail (CLUTTER_IS_TEXT_ACCESSIBLE (action), FALSE);
cally_actor = CALLY_TEXT (action); self = CLUTTER_TEXT_ACCESSIBLE (action);
priv = cally_text_get_instance_private (cally_actor);
set = atk_object_ref_state_set (ATK_OBJECT (cally_actor)); set = atk_object_ref_state_set (ATK_OBJECT (self));
if (atk_state_set_contains_state (set, ATK_STATE_DEFUNCT)) if (atk_state_set_contains_state (set, ATK_STATE_DEFUNCT))
return FALSE; return FALSE;
@ -1899,16 +1874,16 @@ cally_text_action_do_action (AtkAction *action,
!atk_state_set_contains_state (set, ATK_STATE_SHOWING)) !atk_state_set_contains_state (set, ATK_STATE_SHOWING))
return FALSE; return FALSE;
if (priv->activate_action == NULL) if (self->activate_action == NULL)
return FALSE; return FALSE;
if (priv->activate_action->do_action_func == NULL) if (self->activate_action->do_action_func == NULL)
return FALSE; return FALSE;
g_queue_push_head (priv->action_queue, priv->activate_action); g_queue_push_head (self->action_queue, self->activate_action);
if (!priv->action_idle_handler) if (!self->action_idle_handler)
priv->action_idle_handler = g_idle_add (idle_do_action, cally_actor); self->action_idle_handler = g_idle_add (idle_do_action, self);
return TRUE; return TRUE;
} }
@ -1926,16 +1901,16 @@ static const gchar*
cally_text_action_get_name (AtkAction *action, cally_text_action_get_name (AtkAction *action,
gint i) gint i)
{ {
CallyTextPrivate *priv; ClutterTextAccessible *self;
g_return_val_if_fail (CLUTTER_IS_ACTOR_ACCESSIBLE (action), NULL); g_return_val_if_fail (CLUTTER_IS_ACTOR_ACCESSIBLE (action), NULL);
priv = cally_text_get_instance_private (CALLY_TEXT (action)); self = CLUTTER_TEXT_ACCESSIBLE (action);
if (priv->activate_action == NULL) if (self->activate_action == NULL)
return NULL; return NULL;
return priv->activate_action->name; return self->activate_action->name;
} }
/* GailTextUtil/GailMisc reimplementation methods */ /* GailTextUtil/GailMisc reimplementation methods */

View File

@ -46,7 +46,7 @@
#include "clutter/clutter-text.h" #include "clutter/clutter-text.h"
#include "clutter/cally-text.h" #include "clutter/clutter-text-accessible-private.h"
#include "clutter/clutter-actor-private.h" #include "clutter/clutter-actor-private.h"
#include "clutter/clutter-animatable.h" #include "clutter/clutter-animatable.h"
#include "clutter/clutter-backend-private.h" #include "clutter/clutter-backend-private.h"
@ -3847,7 +3847,7 @@ clutter_text_class_init (ClutterTextClass *klass)
gobject_class->finalize = clutter_text_finalize; gobject_class->finalize = clutter_text_finalize;
actor_class->paint = clutter_text_paint; actor_class->paint = clutter_text_paint;
actor_class->get_accessible_type = cally_text_get_type; actor_class->get_accessible_type = clutter_text_accessible_get_type;
actor_class->get_paint_volume = clutter_text_get_paint_volume; actor_class->get_paint_volume = clutter_text_get_paint_volume;
actor_class->get_preferred_width = clutter_text_get_preferred_width; actor_class->get_preferred_width = clutter_text_get_preferred_width;
actor_class->get_preferred_height = clutter_text_get_preferred_height; actor_class->get_preferred_height = clutter_text_get_preferred_height;

View File

@ -30,7 +30,6 @@
#include "clutter/clutter-types.h" #include "clutter/clutter-types.h"
#include "clutter/clutter-actor-accessible.h" #include "clutter/clutter-actor-accessible.h"
#include "clutter/cally-text.h"
#include "clutter/clutter-action.h" #include "clutter/clutter-action.h"
#include "clutter/clutter-actor.h" #include "clutter/clutter-actor.h"

View File

@ -168,6 +168,7 @@ clutter_sources = [
'clutter-stage-view.c', 'clutter-stage-view.c',
'clutter-stage-window.c', 'clutter-stage-window.c',
'clutter-tap-action.c', 'clutter-tap-action.c',
'clutter-text-accessible.c',
'clutter-text.c', 'clutter-text.c',
'clutter-text-buffer.c', 'clutter-text-buffer.c',
'clutter-texture-content.c', 'clutter-texture-content.c',
@ -214,6 +215,7 @@ clutter_private_headers = [
'clutter-stage-private.h', 'clutter-stage-private.h',
'clutter-stage-view-private.h', 'clutter-stage-view-private.h',
'clutter-stage-window.h', 'clutter-stage-window.h',
'clutter-text-accessible-private.h',
'clutter-timeline-private.h', 'clutter-timeline-private.h',
] ]
@ -223,14 +225,6 @@ clutter_nonintrospected_sources = [
clutter_backend_private_headers = [] clutter_backend_private_headers = []
clutter_headers += [
'cally-text.h',
]
clutter_sources += [
'cally-text.c',
]
clutter_built_sources = [] clutter_built_sources = []
clutter_built_headers = [] clutter_built_headers = []