diff options
-rw-r--r-- | example/simple-client.c | 10 | ||||
-rw-r--r-- | src/libappindicator/app-indicator.c | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/example/simple-client.c b/example/simple-client.c index 997a446..ee7bad2 100644 --- a/example/simple-client.c +++ b/example/simple-client.c @@ -69,10 +69,17 @@ image_clicked_cb (GtkWidget *widget, gpointer data) } static void +item_clicked_2_cb (GtkWidget *widget, GtkWidget *old) +{ + gtk_widget_set_sensitive (old, FALSE); +} + +static void append_submenu (GtkWidget *item) { GtkWidget *menu; GtkWidget *mi; + GtkWidget *prev_mi; menu = gtk_menu_new (); @@ -81,10 +88,11 @@ append_submenu (GtkWidget *item) g_signal_connect (mi, "activate", G_CALLBACK (item_clicked_cb), "Sub 1"); + prev_mi = mi; mi = gtk_menu_item_new_with_label ("Sub 2"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi); g_signal_connect (mi, "activate", - G_CALLBACK (item_clicked_cb), "Sub 2"); + G_CALLBACK (item_clicked_2_cb), prev_mi); mi = gtk_menu_item_new_with_label ("Sub 3"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi); diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index 49c0903..1f39f57 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -1301,6 +1301,10 @@ app_indicator_set_menu (AppIndicator *self, GtkMenu *menu) priv->menu = GTK_WIDGET (menu); g_object_ref (priv->menu); + setup_dbusmenu (self); + + check_connect (self); + g_signal_connect (menu, "add", G_CALLBACK (client_menu_changed), @@ -1309,10 +1313,6 @@ app_indicator_set_menu (AppIndicator *self, GtkMenu *menu) "remove", G_CALLBACK (client_menu_changed), self); - - setup_dbusmenu (self); - - check_connect (self); } /** |