aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/client.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-02-14 17:09:04 -0600
committerTed Gould <ted@gould.cx>2011-02-14 17:09:04 -0600
commitb145235e39b4ac35c1cad312d04e7c0471c518d7 (patch)
tree4b01692096b7ef4989cbacbe1e0efabd4af9abef /libdbusmenu-glib/client.c
parentdb7578d5a6690a7170b449624e4092b9c1e69371 (diff)
downloadlibdbusmenu-b145235e39b4ac35c1cad312d04e7c0471c518d7.tar.gz
libdbusmenu-b145235e39b4ac35c1cad312d04e7c0471c518d7.tar.bz2
libdbusmenu-b145235e39b4ac35c1cad312d04e7c0471c518d7.zip
Get the IDs properly. ints and unpacked
Diffstat (limited to 'libdbusmenu-glib/client.c')
-rw-r--r--libdbusmenu-glib/client.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index 7721787..fa3b1d2 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -1408,7 +1408,7 @@ parse_layout_xml(DbusmenuClient * client, GVariant * layout, DbusmenuMenuitem *
child = g_variant_get_variant(child);
}
- gint childid = g_variant_get_uint32(g_variant_get_child_value(child, 0));
+ gint childid = g_variant_get_int32(g_variant_get_child_value(child, 0));
if (childid < 0) {
/* Don't increment the position when there isn't a valid
node in the XML tree. It's probably a comment. */
@@ -1473,7 +1473,11 @@ parse_layout_xml(DbusmenuClient * client, GVariant * layout, DbusmenuMenuitem *
child = g_variant_iter_next_value(&children);
GList * childmis = dbusmenu_menuitem_get_children(item);
while (child != NULL && childmis != NULL) {
- gint xmlid = g_variant_get_uint32(g_variant_get_child_value(child, 0));
+ if (g_variant_is_of_type(child, G_VARIANT_TYPE_VARIANT)) {
+ child = g_variant_get_variant(child);
+ }
+
+ gint xmlid = g_variant_get_int32(g_variant_get_child_value(child, 0));
/* If this isn't a valid menu item we need to move on
until we have one. This avoids things like comments. */
if (xmlid < 0) {