diff options
author | Ken VanDine <ken.vandine@canonical.com> | 2011-01-14 10:53:50 -0600 |
---|---|---|
committer | Ken VanDine <ken.vandine@canonical.com> | 2011-01-14 10:53:50 -0600 |
commit | 500000a82b6785e2bf7732ee87f36c6a44d2767c (patch) | |
tree | fdac470fe96ff3f2f2ee1e70fcf093a8403915db /src/slider-menu-item.c | |
parent | 412bffad64182bfae1e2408b89f9488f0da38481 (diff) | |
parent | 991d41fa7c9b5b51942f836ca68265513de6ef8c (diff) | |
download | ayatana-indicator-sound-500000a82b6785e2bf7732ee87f36c6a44d2767c.tar.gz ayatana-indicator-sound-500000a82b6785e2bf7732ee87f36c6a44d2767c.tar.bz2 ayatana-indicator-sound-500000a82b6785e2bf7732ee87f36c6a44d2767c.zip |
Import upstream version 0.5.6
Diffstat (limited to 'src/slider-menu-item.c')
-rw-r--r-- | src/slider-menu-item.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/slider-menu-item.c b/src/slider-menu-item.c index d0d2050..0f2f07b 100644 --- a/src/slider-menu-item.c +++ b/src/slider-menu-item.c @@ -39,7 +39,8 @@ static void slider_menu_item_class_init (SliderMenuItemClass *klass); static void slider_menu_item_init (SliderMenuItem *self); static void slider_menu_item_dispose (GObject *object); static void slider_menu_item_finalize (GObject *object); -static void handle_event (DbusmenuMenuitem * mi, const gchar * name, const GValue * value, guint timestamp); +static void handle_event (DbusmenuMenuitem * mi, const gchar * name, + GVariant * value, guint timestamp); G_DEFINE_TYPE (SliderMenuItem, slider_menu_item, DBUSMENU_TYPE_MENUITEM); @@ -77,12 +78,29 @@ slider_menu_item_finalize (GObject *object) static void -handle_event (DbusmenuMenuitem * mi, const gchar * name, const GValue * value, guint timestamp) +handle_event (DbusmenuMenuitem * mi, + const gchar * name, + GVariant * value, + guint timestamp) { gdouble volume_input = 0; - volume_input = g_value_get_double(value); - if (value != NULL) + /*g_debug ( "handle-event in the slider at the backend, input is of type %s", + g_variant_get_type_string(value));*/ + + GVariant* input = NULL; + input = value; + g_variant_ref (input); + + // Please note: Subject to change in future DBusmenu revisions + if (g_variant_is_of_type(value, G_VARIANT_TYPE_VARIANT) == TRUE) { + input = g_variant_get_variant(value); + } + + volume_input = g_variant_get_double(input); + if (value != NULL){ set_sink_volume(volume_input); + } + g_variant_unref (input); } |