Add right click menu on status icon with a Quit item
This commit is contained in:
20
src/main.c
20
src/main.c
@@ -34,6 +34,24 @@ status_icon_activated (void)
|
||||
gtk_widget_hide (window);
|
||||
}
|
||||
|
||||
static void
|
||||
status_icon_popup_menu (GtkStatusIcon *_status_icon, guint button, guint activate_time)
|
||||
{
|
||||
static GtkWidget *menu = NULL;
|
||||
|
||||
if (menu == NULL)
|
||||
{
|
||||
GtkWidget *mi;
|
||||
menu = gtk_menu_new ();
|
||||
mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, NULL);
|
||||
g_signal_connect (mi, "activate", G_CALLBACK (gtk_main_quit), NULL);
|
||||
gtk_container_add (GTK_CONTAINER (menu), mi);
|
||||
gtk_widget_show_all (menu);
|
||||
}
|
||||
|
||||
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, gtk_status_icon_position_menu, _status_icon, button, activate_time);
|
||||
}
|
||||
|
||||
static void
|
||||
show_hide_status_icon (void)
|
||||
{
|
||||
@@ -45,6 +63,7 @@ show_hide_status_icon (void)
|
||||
static void
|
||||
destroy_window (void)
|
||||
{
|
||||
if (gtk_main_level () > 0)
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
||||
@@ -141,6 +160,7 @@ int main (int argc, char *argv[])
|
||||
status_icon = gtk_status_icon_new_from_icon_name ("utilities-system-monitor");
|
||||
show_hide_status_icon ();
|
||||
g_signal_connect (status_icon, "activate", G_CALLBACK (status_icon_activated), NULL);
|
||||
g_signal_connect (status_icon, "popup-menu", G_CALLBACK (status_icon_popup_menu), NULL);
|
||||
|
||||
window = xtm_process_window_new ();
|
||||
gtk_widget_show (window);
|
||||
|
||||
Reference in New Issue
Block a user