aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-01-26 13:19:00 -0600
committerTed Gould <ted@gould.cx>2011-01-26 13:19:00 -0600
commit8cb9c58a67750f3c1666c005db4709959276354f (patch)
tree4e5ca0cbfd410d525fb3e7346b03fdf0da296b83 /libdbusmenu-glib
parent7dc976ae7666254a7cd643542527636010a3ac0b (diff)
parent025b5f2dfad9c8bd65d1c6b055bea2d8fd1ab33d (diff)
downloadlibdbusmenu-8cb9c58a67750f3c1666c005db4709959276354f.tar.gz
libdbusmenu-8cb9c58a67750f3c1666c005db4709959276354f.tar.bz2
libdbusmenu-8cb9c58a67750f3c1666c005db4709959276354f.zip
Fix the signatures for GetChildren
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r--libdbusmenu-glib/server.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libdbusmenu-glib/server.c b/libdbusmenu-glib/server.c
index 095f333..adb9f91 100644
--- a/libdbusmenu-glib/server.c
+++ b/libdbusmenu-glib/server.c
@@ -975,11 +975,17 @@ serialize_menuitem(gpointer data, gpointer user_data)
{
DbusmenuMenuitem * mi = DBUSMENU_MENUITEM(data);
GVariantBuilder * builder = (GVariantBuilder *)(user_data);
+ GVariantBuilder tuple;
+
+ g_variant_builder_init(&tuple, G_VARIANT_TYPE_TUPLE);
gint id = dbusmenu_menuitem_get_id(mi);
+ g_variant_builder_add_value(&tuple, g_variant_new_int32(id));
+
GVariant * props = dbusmenu_menuitem_properties_variant(mi);
+ g_variant_builder_add_value(&tuple, props);
- g_variant_builder_add(builder, "ia{sv}", id, props);
+ g_variant_builder_add_value(builder, g_variant_builder_end(&tuple));
return;
}
@@ -1020,7 +1026,8 @@ bus_get_children (DbusmenuServer * server, GVariant * params, GDBusMethodInvocat
g_list_foreach(children, serialize_menuitem, &builder);
- ret = g_variant_new("(a(ia{svg}))", g_variant_builder_end(&builder));
+ GVariant * end = g_variant_builder_end(&builder);
+ ret = g_variant_new_tuple(&end, 1);
} else {
GError * error = NULL;
ret = g_variant_parse(g_variant_type_new("(a(ia{sv}))"), "([(0, {})],)", NULL, NULL, &error);