diff options
-rw-r--r-- | libdbusmenu-glib/server.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libdbusmenu-glib/server.c b/libdbusmenu-glib/server.c index 091b243..ebe0082 100644 --- a/libdbusmenu-glib/server.c +++ b/libdbusmenu-glib/server.c @@ -1831,12 +1831,13 @@ bus_about_to_show_group (DbusmenuServer * server, GVariant * params, GDBusMethod gint32 id; GVariantIter iter; GVariantBuilder builder; - - g_variant_iter_init(&iter, params); + + GVariant * items = g_variant_get_child_value(params, 0); + g_variant_iter_init(&iter, items); g_variant_builder_init(&builder, G_VARIANT_TYPE("ai")); gboolean gotone = FALSE; - while (g_variant_iter_loop(&iter, "(i)", &id)) { + while (g_variant_iter_loop(&iter, "i", &id)) { DbusmenuMenuitem * mi = lookup_menuitem_by_id(server, id); if (mi != NULL) { g_timeout_add(0, bus_about_to_show_idle, g_object_ref(mi)); @@ -1872,6 +1873,7 @@ bus_about_to_show_group (DbusmenuServer * server, GVariant * params, GDBusMethod } g_variant_unref(errors); + g_variant_unref(items); return; } |