diff --git a/src/terminal-window.c b/src/terminal-window.c index 7bdc0d1..fb536f7 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, @@ -2898,6 +2901,7 @@ notebook_button_press_cb (GtkWidget *widget, TerminalWindowPrivate *priv = window->priv; TerminalScreen *active_screen = priv->active_screen; GtkNotebook *notebook = GTK_NOTEBOOK (widget); + GtkWidget *tab; GtkWidget *menu; GtkAction *action; int tab_clicked; @@ -2929,6 +2933,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); @@ -2959,6 +2967,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 ());