diff options
author | Ted Gould <ted@gould.cx> | 2011-02-14 17:09:04 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-02-14 17:09:04 -0600 |
commit | b145235e39b4ac35c1cad312d04e7c0471c518d7 (patch) | |
tree | 4b01692096b7ef4989cbacbe1e0efabd4af9abef /libdbusmenu-glib/client.c | |
parent | db7578d5a6690a7170b449624e4092b9c1e69371 (diff) | |
download | libdbusmenu-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.c | 8 |
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) { |