diff options
author | Conor Curran <conor.curran@canonical.com> | 2011-03-23 10:17:41 +0000 |
---|---|---|
committer | Conor Curran <conor.curran@canonical.com> | 2011-03-23 10:17:41 +0000 |
commit | 6d49a88f63282e4171d82b96177ecd9ca5441f1c (patch) | |
tree | d12435b6d66dc895a6745b2664d70baab1a42bea /src/slider-menu-item.c | |
parent | 6375d3eb602251a2374944817e34b9695ae50b65 (diff) | |
parent | a82ab70e9e82f09ba3d2446dba1b57ead1bde5f8 (diff) | |
download | ayatana-indicator-sound-6d49a88f63282e4171d82b96177ecd9ca5441f1c.tar.gz ayatana-indicator-sound-6d49a88f63282e4171d82b96177ecd9ca5441f1c.tar.bz2 ayatana-indicator-sound-6d49a88f63282e4171d82b96177ecd9ca5441f1c.zip |
protection against rogue dbusmenu properties
Diffstat (limited to 'src/slider-menu-item.c')
-rw-r--r-- | src/slider-menu-item.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/slider-menu-item.c b/src/slider-menu-item.c index d7d08fb..8186fa3 100644 --- a/src/slider-menu-item.c +++ b/src/slider-menu-item.c @@ -69,9 +69,6 @@ slider_menu_item_class_init (SliderMenuItemClass *klass) static void slider_menu_item_init (SliderMenuItem *self) { -/* - g_debug("Building new Slider Menu Item"); -*/ dbusmenu_menuitem_property_set( DBUSMENU_MENUITEM(self), DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_VOLUME_MENUITEM_TYPE ); @@ -108,11 +105,13 @@ handle_event (DbusmenuMenuitem * mi, SliderMenuItemPrivate* priv = SLIDER_MENU_ITEM_GET_PRIVATE (SLIDER_MENU_ITEM (mi)); gdouble volume_input = g_variant_get_double (value); + /* g_debug ("slider menu item handle event with value %f on name %s", volume_input, name); */ + slider_menu_item_update_volume (SLIDER_MENU_ITEM (mi), volume_input); device_ensure_sink_is_unmuted (priv->a_sink); } @@ -135,7 +134,7 @@ slider_menu_item_populate (SliderMenuItem* self, const pa_sink_info* update) dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self), DBUSMENU_VOLUME_MENUITEM_LEVEL, new_volume); - GVariant* new_mute_update = g_variant_new_int32 (update->mute); + GVariant* new_mute_update = g_variant_new_boolean (update->mute == 1); dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self), DBUSMENU_VOLUME_MENUITEM_MUTE, new_mute_update); @@ -147,6 +146,7 @@ slider_menu_item_populate (SliderMenuItem* self, const pa_sink_info* update) static void slider_menu_item_update_volume (SliderMenuItem* self, gdouble percent) { + /* g_debug ("slider menu item update volume - about to set the volume to %f", percent); */ @@ -177,18 +177,21 @@ slider_menu_item_update (SliderMenuItem* self, const pa_sink_info* update) gdouble volume_percent = ((gdouble) vol * 100) / PA_VOLUME_NORM; GVariant* new_volume = g_variant_new_double (volume_percent); + /* g_debug ("slider menu item update - volume update to ui to %f", volume_percent); */ + dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self), DBUSMENU_VOLUME_MENUITEM_LEVEL, new_volume); + if (priv->mute != update->mute){ priv->mute = update->mute; /* g_debug ("volume menu item - update - mute on ui = %i", update->mute); */ - GVariant* new_mute_update = g_variant_new_int32 (update->mute); + GVariant* new_mute_update = g_variant_new_boolean (update->mute == 1); dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self), DBUSMENU_VOLUME_MENUITEM_MUTE, new_mute_update); @@ -241,4 +244,4 @@ slider_menu_item_new (Device* sink) SliderMenuItemPrivate* priv = SLIDER_MENU_ITEM_GET_PRIVATE (self); priv->a_sink = sink; return self; -}
\ No newline at end of file +} |