void menu_info_item_clicked(GtkWidget* item, GdkEventButton* event, menu_info_item_t* mii) { g_debug("[menu_info] item clicked mod:%s%s button:%i", (event->state & GDK_CONTROL_MASK) ? "[ctrl]" : "", (event->state & GDK_MOD1_MASK) ? "[alt]" : "", event->button); switch(event->button) { case 1: /* on alt + left-click, toggle mute device/stream */ if(event->state & GDK_MOD1_MASK) pulseaudio_toggle_mute(mii); /* on left-click, set device as default */ else pulseaudio_set_default(mii); break; /* on middle-click, toggle mute device/stream */ case 2: pulseaudio_toggle_mute(mii); break; /* on right-click, show context menu (if any) */ case 3: if(mii->context) gtk_menu_popup(GTK_MENU(mii->context), NULL, NULL, NULL, NULL, (event != NULL) ? event->button : 0, gdk_event_get_time((GdkEvent*)event)); break; } }
void systray_click_cb(GtkStatusIcon* icon, GdkEventButton* ev, gpointer userdata) { menu_infos_t* mis = userdata; menu_info_t* mi = &mis->menu_info[(ev->state & GDK_CONTROL_MASK) ? MENU_SOURCE : MENU_SINK]; menu_info_item_t* mii = menu_info_item_get_by_name(mi, mi->default_name); g_debug("[systray] click mod:%s%s button:%i", (ev->state & GDK_CONTROL_MASK) ? "[ctrl]" : "", (ev->state & GDK_MOD1_MASK) ? "[alt]" : "", ev->button); switch(ev->button) { case 1: /* on alt + left-click, toggle mute default sink */ if(ev->state & GDK_MOD1_MASK) { if(mii) pulseaudio_toggle_mute(mii); } /* on ctrl + left-click, start pavucontrol */ else if(ev->state & GDK_CONTROL_MASK) { g_spawn_command_line_async(COMMAND_PAVUCONTROL, NULL); } /* on left-click, show menu */ else { gtk_menu_popup(GTK_MENU(mis->menu), NULL, NULL, #if HAVE_STATUSICON gtk_status_icon_position_menu, #else NULL, #endif icon, ev->button, ev->time); } break; case 2: /* on middle-click, toggle mute default sink */ if(mii) { pulseaudio_toggle_mute(mii); } break; case 3: /* on right-click, show menu */ gtk_menu_popup(GTK_MENU(mis->menu), NULL, NULL, #if HAVE_STATUSICON gtk_status_icon_position_menu, #else NULL, #endif icon, ev->button, ev->time); break; } }
void menu_info_item_clicked(GtkWidget* item, GdkEventButton* event, menu_info_item_t* mii) { #ifdef DEBUG g_message("[systray] button-press-event mod:%s button:%i", (event->state & GDK_CONTROL_MASK) ? "ctrl" : "", event->button); #endif switch(event->button) { /* on left-click, set device as default */ case 1: pulseaudio_set_default(mii); break; /* on middle-click, toggle mute device/stream */ case 2: pulseaudio_toggle_mute(mii); break; /* on right-click, show context menu (if any) */ case 3: if(mii->context) gtk_menu_popup(GTK_MENU(mii->context), NULL, NULL, NULL, NULL, (event != NULL) ? event->button : 0, gdk_event_get_time((GdkEvent*)event)); break; } }
void systray_click_cb(GtkStatusIcon* icon, GdkEventButton* ev, gpointer userdata) { menu_infos_t* mis = userdata; switch(ev->button) { case 1: case 3: gtk_menu_popup(GTK_MENU(mis->menu), NULL, NULL, gtk_status_icon_position_menu, icon, ev->button, ev->time); break; case 2: { menu_info_t* mi = &mis->menu_info[(ev->state & GDK_CONTROL_MASK) ? MENU_SOURCE : MENU_SINK]; menu_info_item_t* mii = menu_info_item_get_by_name(mi, mi->default_name); if(mii) pulseaudio_toggle_mute(mii); } break; } }