aboutsummaryrefslogtreecommitdiff
path: root/src/libappindicator/app-indicator.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-02-12 14:49:20 -0600
committerTed Gould <ted@gould.cx>2010-02-12 14:49:20 -0600
commit5fef5a229127903de8e96132a0908d88a0f97723 (patch)
tree10f02191c1e3f6b523933812a7004d6803a43bee /src/libappindicator/app-indicator.c
parentf7b909ce3b94c2afb8e8b8a31b63f579c8bcb92e (diff)
parentbe1ce77e65c89fb426b0692745960c440323fd52 (diff)
downloadayatana-indicator-application-5fef5a229127903de8e96132a0908d88a0f97723.tar.gz
ayatana-indicator-application-5fef5a229127903de8e96132a0908d88a0f97723.tar.bz2
ayatana-indicator-application-5fef5a229127903de8e96132a0908d88a0f97723.zip
Updating to Ubuntu Desktop
Diffstat (limited to 'src/libappindicator/app-indicator.c')
-rw-r--r--src/libappindicator/app-indicator.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c
index 0ca68d4..d179df7 100644
--- a/src/libappindicator/app-indicator.c
+++ b/src/libappindicator/app-indicator.c
@@ -1133,6 +1133,7 @@ container_iterate (GtkWidget *widget,
{
DbusmenuMenuitem *root = (DbusmenuMenuitem *)data;
DbusmenuMenuitem *child;
+ GtkWidget *submenu = NULL;
const gchar *label = NULL;
gboolean label_set = FALSE;
@@ -1213,6 +1214,17 @@ container_iterate (GtkWidget *widget,
}
}
+ if (GTK_IS_MENU_ITEM (widget))
+ {
+ submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+ if (submenu != NULL)
+ {
+ gtk_container_forall (GTK_CONTAINER (submenu),
+ container_iterate,
+ child);
+ }
+ }
+
g_signal_connect (widget, "notify",
G_CALLBACK (widget_notify_cb), child);
@@ -1235,11 +1247,12 @@ setup_dbusmenu (AppIndicator *self)
container_iterate,
root);
- if (priv->menuservice == NULL) {
- gchar * path = g_strdup_printf(DEFAULT_ITEM_PATH "/%s/Menu", priv->clean_id);
- priv->menuservice = dbusmenu_server_new (path);
- g_free(path);
- }
+ if (priv->menuservice == NULL)
+ {
+ gchar * path = g_strdup_printf(DEFAULT_ITEM_PATH "/%s/Menu", priv->clean_id);
+ priv->menuservice = dbusmenu_server_new (path);
+ g_free(path);
+ }
dbusmenu_server_set_root (priv->menuservice, root);