aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem-proxy.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-02-10 17:08:47 -0600
committerTed Gould <ted@gould.cx>2010-02-10 17:08:47 -0600
commit3f50ef61be29c8e3511cc4d86a5d986759cd9ccb (patch)
treef28be05d88cdf61a65e961378516225f0380cc9b /libdbusmenu-glib/menuitem-proxy.c
parent52cb0d03b8b49f8af1e76258228dd72eff039031 (diff)
downloadlibdbusmenu-3f50ef61be29c8e3511cc4d86a5d986759cd9ccb.tar.gz
libdbusmenu-3f50ef61be29c8e3511cc4d86a5d986759cd9ccb.tar.bz2
libdbusmenu-3f50ef61be29c8e3511cc4d86a5d986759cd9ccb.zip
Fleshing out the moved function.
Diffstat (limited to 'libdbusmenu-glib/menuitem-proxy.c')
-rw-r--r--libdbusmenu-glib/menuitem-proxy.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/libdbusmenu-glib/menuitem-proxy.c b/libdbusmenu-glib/menuitem-proxy.c
index f61d2e7..2dd5ada 100644
--- a/libdbusmenu-glib/menuitem-proxy.c
+++ b/libdbusmenu-glib/menuitem-proxy.c
@@ -218,8 +218,25 @@ proxy_item_child_removed (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, g
/* Find the wrapper for the item and move it in our child list */
static void
-proxy_item_child_moved (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint newpos, guint oldpos)
+proxy_item_child_moved (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint newpos, guint oldpos, gpointer user_data)
{
+ DbusmenuMenuitemProxy * pmi = DBUSMENU_MENUITEM_PROXY(user_data);
+ GList * children = dbusmenu_menuitem_get_children(DBUSMENU_MENUITEM(pmi));
+ DbusmenuMenuitemProxy * finalpmi = NULL;
+ GList * childitem;
+
+ for (childitem = children; childitem != NULL; childitem = g_list_next(childitem)) {
+ DbusmenuMenuitemProxy * childpmi = (DbusmenuMenuitemProxy *)childitem->data;
+ DbusmenuMenuitem * childmi = dbusmenu_menuitem_proxy_get_wrapped(childpmi);
+ if (childmi == child) {
+ finalpmi = childpmi;
+ break;
+ }
+ }
+
+ if (finalpmi != NULL) {
+ dbusmenu_menuitem_child_reorder(DBUSMENU_MENUITEM(pmi), DBUSMENU_MENUITEM(finalpmi), newpos);
+ }
return;
}