summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/terminal-window.c11
1 files changed, 11 insertions, 0 deletions
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 ());