aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-10-01 14:51:13 -0500
committerTed Gould <ted@canonical.com>2009-10-01 14:51:13 -0500
commit6005201a3fc42e07bb42bcf27adf4fabca505621 (patch)
treef0c8f8043afeb21f427e8d0d41198f9ab4e1cf8e
parent253fb436e952d8bc013dfa9c2f18adceda42d31a (diff)
parent618fd007fca561e2451ff0c31b4158178a150a7d (diff)
downloadlibdbusmenu-6005201a3fc42e07bb42bcf27adf4fabca505621.tar.gz
libdbusmenu-6005201a3fc42e07bb42bcf27adf4fabca505621.tar.bz2
libdbusmenu-6005201a3fc42e07bb42bcf27adf4fabca505621.zip
Handling child added differently.
-rw-r--r--debian/changelog6
-rw-r--r--libdbusmenu-gtk/menu.c9
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);