static void panel_action_protocol_main_menu (GdkScreen *screen, guint32 activate_time) { PanelWidget *panel_widget; GtkWidget *menu; AppletInfo *info; info = panel_applet_get_by_type (PANEL_OBJECT_MENU_BAR, screen); if (info) { panel_menu_bar_popup_menu (PANEL_MENU_BAR (info->widget), activate_time); return; } info = panel_applet_get_by_type (PANEL_OBJECT_MENU, screen); if (info && panel_menu_button_is_main_menu (PANEL_MENU_BUTTON (info->widget))) { panel_menu_button_popup_menu (PANEL_MENU_BUTTON (info->widget), 1, activate_time); return; } panel_widget = panels->data; menu = create_main_menu (panel_widget); panel_toplevel_push_autohide_disabler (panel_widget->toplevel); gtk_menu_set_screen (GTK_MENU (menu), screen); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, activate_time); }
static void panel_menu_button_clicked (GtkButton *gtk_button) { PanelMenuButton *button; GdkEvent *event; g_return_if_fail (PANEL_IS_MENU_BUTTON (gtk_button)); button = PANEL_MENU_BUTTON (gtk_button); if (GTK_BUTTON_CLASS (panel_menu_button_parent_class)->clicked) GTK_BUTTON_CLASS (panel_menu_button_parent_class)->clicked (gtk_button); if ((event = gtk_get_current_event ())) { panel_menu_button_popup_menu (button, event->button.button, event->button.time); gdk_event_free (event); } else { panel_menu_button_popup_menu (button, 1, GDK_CURRENT_TIME); } }
static void panel_menu_button_pressed (GtkButton *gtk_button) { PanelMenuButton *button; g_return_if_fail (PANEL_IS_MENU_BUTTON (gtk_button)); button = PANEL_MENU_BUTTON (gtk_button); if (GTK_BUTTON_CLASS (panel_menu_button_parent_class)->pressed) GTK_BUTTON_CLASS (panel_menu_button_parent_class)->pressed (gtk_button); panel_menu_button_popup_menu (button, 0, gtk_get_current_event_time()); }