diff --git a/src/terminal-window.c b/src/terminal-window.c index 2846d0d..b0977fb 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -1533,6 +1533,9 @@ popup_clipboard_targets_received_cb (GtkClipboard *clipboard, if (info->button == 0) gtk_menu_shell_select_first (GTK_MENU_SHELL (popup_menu), FALSE); + if (gtk_menu_get_attach_widget (GTK_MENU (popup_menu))) + gtk_menu_detach (GTK_MENU (popup_menu)); + gtk_menu_attach_to_widget (GTK_MENU (popup_menu), GTK_WIDGET (screen), NULL); gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL, NULL, NULL, @@ -2897,6 +2900,7 @@ notebook_button_press_cb (GtkWidget *widget, { TerminalWindowPrivate *priv = window->priv; GtkNotebook *notebook = GTK_NOTEBOOK (widget); + GtkWidget *tab; GtkWidget *menu; GtkAction *action; int tab_clicked; @@ -2917,6 +2921,10 @@ notebook_button_press_cb (GtkWidget *widget, gtk_action_activate (action); menu = gtk_ui_manager_get_widget (priv->ui_manager, "/NotebookPopup"); + if (gtk_menu_get_attach_widget (GTK_MENU (menu))) + gtk_menu_detach (GTK_MENU (menu)); + tab = gtk_notebook_get_nth_page (notebook, tab_clicked); + gtk_menu_attach_to_widget (GTK_MENU (menu), tab, NULL); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time); @@ -2947,6 +2955,9 @@ notebook_popup_menu_cb (GtkWidget *widget, gtk_action_activate (action); menu = gtk_ui_manager_get_widget (priv->ui_manager, "/NotebookPopup"); + if (gtk_menu_get_attach_widget (GTK_MENU (menu))) + gtk_menu_detach (GTK_MENU (menu)); + gtk_menu_attach_to_widget (GTK_MENU (menu), tab_label, NULL); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, position_menu_under_widget, tab_label, 0, gtk_get_current_event_time ());