diff options
author | Ted Gould <ted@gould.cx> | 2010-07-20 13:34:18 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-07-20 13:34:18 -0500 |
commit | 4e30bfbc1203e5c3135f5f541cf7c8ea3efcb62c (patch) | |
tree | 02a0fbe2a7842eee76fb91d27f5287cbe0ec2e63 /libdbusmenu-glib | |
parent | 42f883725a882b1391e79d96efbdcead50dae98c (diff) | |
download | libdbusmenu-4e30bfbc1203e5c3135f5f541cf7c8ea3efcb62c.tar.gz libdbusmenu-4e30bfbc1203e5c3135f5f541cf7c8ea3efcb62c.tar.bz2 libdbusmenu-4e30bfbc1203e5c3135f5f541cf7c8ea3efcb62c.zip |
Making it so that we create the child, and then move down it's XML tree.
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r-- | libdbusmenu-glib/client.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c index 257ad3f..aad9fdc 100644 --- a/libdbusmenu-glib/client.c +++ b/libdbusmenu-glib/client.c @@ -1127,17 +1127,15 @@ parse_layout_xml(DbusmenuClient * client, xmlNodePtr node, DbusmenuMenuitem * it } } - DbusmenuMenuitem * newchildmi = parse_layout_xml(client, children, childmi, item, proxy); - - if (newchildmi != childmi) { - if (childmi != NULL) { - dbusmenu_menuitem_child_delete(item, childmi); - } - dbusmenu_menuitem_child_add_position(item, newchildmi, position); - g_object_unref(newchildmi); + if (childmi == NULL) { + childmi = parse_layout_new_child(id, client, parent); + dbusmenu_menuitem_child_add_position(item, childmi, position); + g_object_unref(childmi); } else { dbusmenu_menuitem_child_reorder(item, childmi, position); } + + parse_layout_xml(client, children, childmi, item, proxy); } /* g_debug("Stopping old children: %d", g_list_length(oldchildren)); */ |