diff options
author | Ted Gould <ted@gould.cx> | 2010-01-21 15:57:18 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-01-21 15:57:18 -0600 |
commit | aec55f7fae016a6d25f675a02ff42c981ec80c04 (patch) | |
tree | 1190d4256d82e8015fdae2d77ff027e8ea18c9b5 | |
parent | 438443e863be28a23c9494281a2a10bea6a9b6fc (diff) | |
download | libdbusmenu-aec55f7fae016a6d25f675a02ff42c981ec80c04.tar.gz libdbusmenu-aec55f7fae016a6d25f675a02ff42c981ec80c04.tar.bz2 libdbusmenu-aec55f7fae016a6d25f675a02ff42c981ec80c04.zip |
Set the node ID to zero if the node is the root node.
-rw-r--r-- | libdbusmenu-glib/menuitem.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c index a03117c..3e06719 100644 --- a/libdbusmenu-glib/menuitem.c +++ b/libdbusmenu-glib/menuitem.c @@ -1060,12 +1060,17 @@ dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revis { g_return_if_fail(DBUSMENU_IS_MENUITEM(mi)); + guint id = 0; + if (!dbusmenu_menuitem_get_root(mi)) { + id = dbusmenu_menuitem_get_id(mi); + } + GList * children = dbusmenu_menuitem_get_children(mi); /* TODO: Only put revision info in the root node. Save some bandwidth. */ if (children == NULL) { - g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\" />", dbusmenu_menuitem_get_id(mi), revision)); + g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\" />", id, revision)); } else { - g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\">", dbusmenu_menuitem_get_id(mi), revision)); + g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\">", id, revision)); for ( ; children != NULL; children = children->next) { dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array, revision); } |