forked from AuroraMiddleware/gtk
a11y: Do actions on cells immediately
No idle handlers, please.
This commit is contained in:
parent
52c0933bc0
commit
8e28e22bcf
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user