a11y: Do actions on cells immediately

No idle handlers, please.
This commit is contained in:
Benjamin Otte 2011-06-28 18:34:50 +02:00 committed by Matthias Clasen
parent 52c0933bc0
commit 8e28e22bcf
2 changed files with 3 additions and 24 deletions

View File

@ -60,7 +60,6 @@ static const gchar *
gint index);
static gboolean gail_cell_action_do_action (AtkAction *action,
gint index);
static gboolean idle_do_action (gpointer data);
static void atk_component_interface_init (AtkComponentIface *iface);
static void gail_cell_get_extents (AtkComponent *component,
@ -148,11 +147,6 @@ gail_cell_object_finalize (GObject *obj)
g_list_foreach (cell->action_list, _gail_cell_destroy_action_info, NULL);
g_list_free (cell->action_list);
}
if (cell->action_idle_handler)
{
g_source_remove (cell->action_idle_handler);
cell->action_idle_handler = 0;
}
relation_set = atk_object_ref_relation_set (ATK_OBJECT (obj));
if (ATK_IS_RELATION_SET (relation_set))
{
@ -442,25 +436,12 @@ gail_cell_action_do_action (AtkAction *action,
return FALSE;
if (info->do_action_func == NULL)
return FALSE;
if (cell->action_idle_handler)
return FALSE;
cell->action_func = info->do_action_func;
cell->action_idle_handler = gdk_threads_add_idle (idle_do_action, cell);
info->do_action_func (cell);
return TRUE;
}
static gboolean
idle_do_action (gpointer data)
{
GailCell *cell;
cell = GAIL_CELL (data);
cell->action_idle_handler = 0;
cell->action_func (cell);
return FALSE;
}
static void
atk_component_interface_init (AtkComponentIface *iface)
{

View File

@ -49,8 +49,6 @@ struct _GailCell
AtkStateSet *state_set;
GList *action_list;
void (*refresh_index) (GailCell *cell);
gint action_idle_handler;
ACTION_FUNC action_func;
};
GType gail_cell_get_type (void);