mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-05 02:11:08 +00:00
Check if the accessible is actually an AtkAction
This commit is contained in:
parent
ba6107d39a
commit
bdacdfb78b
@ -12882,32 +12882,37 @@ gtk_widget_buildable_custom_finished (GtkBuildable *buildable,
|
|||||||
|
|
||||||
accessible = gtk_widget_get_accessible (GTK_WIDGET (buildable));
|
accessible = gtk_widget_get_accessible (GTK_WIDGET (buildable));
|
||||||
|
|
||||||
action = ATK_ACTION (accessible);
|
if (ATK_IS_ACTION (accessible))
|
||||||
n_actions = atk_action_get_n_actions (action);
|
{
|
||||||
|
action = ATK_ACTION (accessible);
|
||||||
|
n_actions = atk_action_get_n_actions (action);
|
||||||
|
|
||||||
for (l = a11y_data->actions; l; l = l->next)
|
for (l = a11y_data->actions; l; l = l->next)
|
||||||
{
|
{
|
||||||
AtkActionData *action_data = (AtkActionData*)l->data;
|
AtkActionData *action_data = (AtkActionData*)l->data;
|
||||||
|
|
||||||
for (i = 0; i < n_actions; i++)
|
for (i = 0; i < n_actions; i++)
|
||||||
if (strcmp (atk_action_get_name (action, i),
|
if (strcmp (atk_action_get_name (action, i),
|
||||||
action_data->action_name) == 0)
|
action_data->action_name) == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (i < n_actions)
|
if (i < n_actions)
|
||||||
{
|
{
|
||||||
gchar *description;
|
gchar *description;
|
||||||
|
|
||||||
if (action_data->translatable && action_data->description->len)
|
if (action_data->translatable && action_data->description->len)
|
||||||
description = _gtk_builder_parser_translate (gtk_builder_get_translation_domain (builder),
|
description = _gtk_builder_parser_translate (gtk_builder_get_translation_domain (builder),
|
||||||
action_data->context,
|
action_data->context,
|
||||||
action_data->description->str);
|
action_data->description->str);
|
||||||
else
|
else
|
||||||
description = action_data->description->str;
|
description = action_data->description->str;
|
||||||
|
|
||||||
atk_action_set_description (action, i, description);
|
atk_action_set_description (action, i, description);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
g_warning ("accessibility action on a widget that does not implement AtkAction");
|
||||||
|
|
||||||
g_slist_foreach (a11y_data->actions, (GFunc)free_action, NULL);
|
g_slist_foreach (a11y_data->actions, (GFunc)free_action, NULL);
|
||||||
g_slist_free (a11y_data->actions);
|
g_slist_free (a11y_data->actions);
|
||||||
|
Loading…
Reference in New Issue
Block a user