diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2012-04-25 07:23:31 -0500 |
---|---|---|
committer | Charles Kerr <charles.kerr@canonical.com> | 2012-04-25 07:23:31 -0500 |
commit | 5a64bab16ee6f5eb989c838ca2dce791c54501f3 (patch) | |
tree | bf33261959cd0f12b1fa6058f053b1b5ff0347b9 | |
parent | 51bfc395f9c37fae542d31dcf3382b80315e5cda (diff) | |
parent | 6e076f02999d0010a355fb57f60d4e9b5e799460 (diff) | |
download | ayatana-indicator-sound-5a64bab16ee6f5eb989c838ca2dce791c54501f3.tar.gz ayatana-indicator-sound-5a64bab16ee6f5eb989c838ca2dce791c54501f3.tar.bz2 ayatana-indicator-sound-5a64bab16ee6f5eb989c838ca2dce791c54501f3.zip |
merge lp:~cjcurran/indicator-sound/fix-lp-902715 to make the sound menu's volume slider accessible for screen readers.
-rw-r--r-- | src/volume-widget.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/volume-widget.c b/src/volume-widget.c index ac603c1..1258c20 100644 --- a/src/volume-widget.c +++ b/src/volume-widget.c @@ -135,16 +135,28 @@ volume_widget_property_update( DbusmenuMenuitem* item, gchar* property, if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_LEVEL, property) == 0){ g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_DOUBLE) ); + gdouble update = g_variant_get_double (value); + if(priv->grabbed == FALSE){ GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider); GtkRange *range = (GtkRange*)slider; - gdouble update = g_variant_get_double (value); gtk_range_set_value(range, update); /* g_debug ("volume-widget::volume_widget_property_update - volume - value %f", update); -*/ - update_accessible_desc(priv->indicator); + AtkObject* atk_object; + atk_object = gtk_widget_get_accessible (priv->ido_volume_slider); + if (atk_object != NULL){ + atk_object_set_name (atk_object, desc); + + }*/ } + gchar* desc = g_strdup_printf(_("Volume (%'.0f%%)"), + update); + dbusmenu_menuitem_property_set (priv->twin_item, + DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC, + desc); + g_free (desc); + update_accessible_desc(priv->indicator); } else if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_MUTE, property) == 0){ g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_BOOLEAN)); @@ -196,6 +208,13 @@ volume_widget_set_twin_item(VolumeWidget* self, initial_level = 0; } gtk_range_set_value(range, initial_level); + gchar* desc = g_strdup_printf(_("Volume (%'.0f%%)"), + initial_level); + dbusmenu_menuitem_property_set (priv->twin_item, + DBUSMENU_MENUITEM_PROP_ACCESSIBLE_DESC, + desc); + g_free (desc); + } static gboolean |