--- src/applet.c 2014-07-04 02:33:31.000000000 +0200 +++ /dev/null 2014-10-28 00:23:04.588693234 +0100 @@ -3450,9 +3450,12 @@ return TRUE; } -static void -status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet) +static gboolean +status_icon_activate_cb (GtkStatusIcon *icon, GdkEvent *event, NMApplet *applet) { + if (event->type != GDK_BUTTON_PRESS || ((GdkEventButton*)event)->button != 1) + return FALSE; + /* Have clicking on the applet act also as acknowledgement * of the notification. */ @@ -3474,7 +3477,8 @@ /* Display the new menu */ gtk_menu_popup (GTK_MENU (applet->menu), NULL, NULL, gtk_status_icon_position_menu, icon, - 1, gtk_get_current_event_time ()); + 1, gdk_event_get_time((GdkEvent *) event) ); + return TRUE; } static void @@ -3509,7 +3513,7 @@ G_CALLBACK (status_icon_screen_changed_cb), applet); g_signal_connect (applet->status_icon, "size-changed", G_CALLBACK (status_icon_size_changed_cb), applet); - g_signal_connect (applet->status_icon, "activate", + g_signal_connect (applet->status_icon, "button-press-event", G_CALLBACK (status_icon_activate_cb), applet); g_signal_connect (applet->status_icon, "popup-menu", G_CALLBACK (status_icon_popup_menu_cb), applet);