From bfccb7704338f157477f2faa94d70247ea23dd48 Mon Sep 17 00:00:00 2001 From: ZenWalker Date: Mon, 19 Dec 2016 23:45:03 +0100 Subject: middle click on a tab: make the tab active before closing it Fixes: If we are on a tab, and we make middle click on another tab, it doesn't show the confirm close dialog if there is a foreground process --- src/terminal-window.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/terminal-window.c') diff --git a/src/terminal-window.c b/src/terminal-window.c index fb536f7..bbe82f8 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -2899,21 +2899,26 @@ notebook_button_press_cb (GtkWidget *widget, TerminalWindow *window) { TerminalWindowPrivate *priv = window->priv; - TerminalScreen *active_screen = priv->active_screen; GtkNotebook *notebook = GTK_NOTEBOOK (widget); GtkWidget *tab; GtkWidget *menu; GtkAction *action; int tab_clicked; - if ((event->type == GDK_BUTTON_PRESS && event->button == 2) - && !(confirm_close_window_or_tab (window, active_screen))) + if (event->type == GDK_BUTTON_PRESS && event->button == 2) { tab_clicked = find_tab_num_at_pos (notebook, event->x_root, event->y_root); if (tab_clicked >= 0) { - update_tab_visibility (window, -1); - gtk_notebook_remove_page(notebook, tab_clicked); + gtk_notebook_set_current_page (notebook, tab_clicked); + TerminalScreen *active_screen = priv->active_screen; + + if (!(confirm_close_window_or_tab (window, active_screen))) + { + update_tab_visibility (window, -1); + gtk_notebook_remove_page(notebook, tab_clicked); + } + } } -- cgit v1.2.1