aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-07-20 13:34:18 -0500
committerTed Gould <ted@gould.cx>2010-07-20 13:34:18 -0500
commit4e30bfbc1203e5c3135f5f541cf7c8ea3efcb62c (patch)
tree02a0fbe2a7842eee76fb91d27f5287cbe0ec2e63 /libdbusmenu-glib
parent42f883725a882b1391e79d96efbdcead50dae98c (diff)
downloadlibdbusmenu-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.c14
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)); */