diff options
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | libdbusmenu-gtk/menu.c | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 69c4da3..e83876b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libdbusmenu (0.1.5-0ubuntu1~ppa2~bugfix9) UNRELEASED; urgency=low + + * Handling child added differently. + + -- Ted Gould <ted@ubuntu.com> Thu, 01 Oct 2009 14:50:55 -0500 + libdbusmenu (0.1.5-0ubuntu1~ppa2~bugfix8) karmic; urgency=low * Better log domains and typos diff --git a/libdbusmenu-gtk/menu.c b/libdbusmenu-gtk/menu.c index 5bcf0a1..612709e 100644 --- a/libdbusmenu-gtk/menu.c +++ b/libdbusmenu-gtk/menu.c @@ -192,7 +192,15 @@ static void root_child_added (DbusmenuMenuitem * root, DbusmenuMenuitem * child, guint position, DbusmenuGtkMenu * menu) { g_debug("Root new child"); + DbusmenuGtkMenuPrivate * priv = DBUSMENU_GTKMENU_GET_PRIVATE(menu); + g_signal_connect(G_OBJECT(child), DBUSMENU_MENUITEM_SIGNAL_REALIZED, G_CALLBACK(child_realized), menu); + + GtkWidget * item = GTK_WIDGET(dbusmenu_gtkclient_menuitem_get(priv->client, child)); + if (item != NULL) { + gtk_menu_append(GTK_MENU(menu), item); + gtk_menu_reorder_child(GTK_MENU(menu), item, dbusmenu_menuitem_get_position(root, child)); + } return; } @@ -223,6 +231,7 @@ root_child_delete (DbusmenuMenuitem * root, DbusmenuMenuitem * child, DbusmenuGt static void child_realized (DbusmenuMenuitem * child, gpointer userdata) { + g_debug("Root child realized"); g_return_if_fail(DBUSMENU_IS_GTKMENU(userdata)); DbusmenuGtkMenu * menu = DBUSMENU_GTKMENU(userdata); |