From bfccb7704338f157477f2faa94d70247ea23dd48 Mon Sep 17 00:00:00 2001
From: ZenWalker <scow@riseup.net>
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')

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