aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/simple-client.c10
-rw-r--r--src/libappindicator/app-indicator.c8
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);
}
/**