a11y: exposing the proper button role while using toggle_mode on St.Button
https://bugzilla.gnome.org/show_bug.cgi?id=682366
This commit is contained in:
parent
6ea80eadd6
commit
a1ecf459b3
@ -777,14 +777,32 @@ st_button_accessible_notify_label_cb (StButton *button,
|
|||||||
g_object_notify (G_OBJECT (accessible), "accessible-name");
|
g_object_notify (G_OBJECT (accessible), "accessible-name");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
st_button_accessible_compute_role (AtkObject *accessible,
|
||||||
|
StButton *button)
|
||||||
|
{
|
||||||
|
atk_object_set_role (accessible, button->priv->is_toggle
|
||||||
|
? ATK_ROLE_TOGGLE_BUTTON : ATK_ROLE_PUSH_BUTTON);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
st_button_accessible_notify_toggle_mode_cb (StButton *button,
|
||||||
|
GParamSpec *psec,
|
||||||
|
AtkObject *accessible)
|
||||||
|
{
|
||||||
|
st_button_accessible_compute_role (accessible, button);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
st_button_accessible_initialize (AtkObject *obj,
|
st_button_accessible_initialize (AtkObject *obj,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
ATK_OBJECT_CLASS (st_button_accessible_parent_class)->initialize (obj, data);
|
ATK_OBJECT_CLASS (st_button_accessible_parent_class)->initialize (obj, data);
|
||||||
|
|
||||||
obj->role = ATK_ROLE_PUSH_BUTTON;
|
st_button_accessible_compute_role (obj, ST_BUTTON (data));
|
||||||
|
|
||||||
g_signal_connect (data, "notify::label",
|
g_signal_connect (data, "notify::label",
|
||||||
G_CALLBACK (st_button_accessible_notify_label_cb), obj);
|
G_CALLBACK (st_button_accessible_notify_label_cb), obj);
|
||||||
|
g_signal_connect (data, "notify::toggle-mode",
|
||||||
|
G_CALLBACK (st_button_accessible_notify_toggle_mode_cb), obj);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user