summaryrefslogtreecommitdiff
path: root/src/terminal-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/terminal-window.c')
-rw-r--r--src/terminal-window.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/terminal-window.c b/src/terminal-window.c
index 1eea6ed..df6347c 100644
--- a/src/terminal-window.c
+++ b/src/terminal-window.c
@@ -3501,7 +3501,9 @@ confirm_close_window_or_tab (TerminalWindow *window,
GtkWidget *dialog;
GSettings *settings;
gboolean do_confirm;
+ gboolean has_processes;
int n_tabs;
+ char *confirm_msg;
if (priv->confirm_close_dialog)
{
@@ -3518,7 +3520,7 @@ confirm_close_window_or_tab (TerminalWindow *window,
if (screen)
{
- do_confirm = terminal_screen_has_foreground_process (screen);
+ has_processes = terminal_screen_has_foreground_process (screen);
n_tabs = 1;
}
else
@@ -3535,16 +3537,25 @@ confirm_close_window_or_tab (TerminalWindow *window,
TerminalScreen *terminal_screen;
terminal_screen = terminal_screen_container_get_screen (TERMINAL_SCREEN_CONTAINER (t->data));
- if (terminal_screen_has_foreground_process (terminal_screen))
- {
- do_confirm = TRUE;
+ has_processes = terminal_screen_has_foreground_process (terminal_screen);
+ if (has_processes)
break;
- }
}
g_list_free (tabs);
}
- if (!do_confirm)
+
+ if (has_processes)
+ {
+ if (n_tabs > 1)
+ confirm_msg = _("There are still processes running in some terminals in this window. "
+ "Closing the window will kill all of them.");
+ else
+ confirm_msg = _("There is still a process running in this terminal. "
+ "Closing the terminal will kill it.");
+ } else if (n_tabs > 1)
+ confirm_msg = _("There are multiple tabs open in this window.");
+ else
return FALSE;
dialog = priv->confirm_close_dialog =
@@ -3554,14 +3565,8 @@ confirm_close_window_or_tab (TerminalWindow *window,
GTK_BUTTONS_CANCEL,
"%s", n_tabs > 1 ? _("Close this window?") : _("Close this terminal?"));
- if (n_tabs > 1)
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
- "%s", _("There are still processes running in some terminals in this window. "
- "Closing the window will kill all of them."));
- else
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
- "%s", _("There is still a process running in this terminal. "
- "Closing the terminal will kill it."));
+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+ "%s", confirm_msg);
gtk_window_set_title (GTK_WINDOW (dialog), "");