[Xfce4-commits] <terminal:master> Improve quit confirm dialog.

Nick Schermer noreply at xfce.org
Wed Dec 26 20:34:01 CET 2012


Updating branch refs/heads/master
         to 32d867487108ab1e1ae73f51c0dd7d899bae3070 (commit)
       from 2ee145b49851f5e48a789e640d57a8425351d681 (commit)

commit 32d867487108ab1e1ae73f51c0dd7d899bae3070
Author: Nick Schermer <nick at xfce.org>
Date:   Wed Dec 26 20:33:18 2012 +0100

    Improve quit confirm dialog.
    
    Allow to close the active tab too.

 terminal/terminal-window.c |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/terminal/terminal-window.c b/terminal/terminal-window.c
index ec5f5f1..fe724fe 100644
--- a/terminal/terminal-window.c
+++ b/terminal/terminal-window.c
@@ -234,8 +234,8 @@ static const GtkActionEntry action_entries[] =
     { "new-tab", "tab-new", N_ ("Open _Tab"), "<control><shift>t", N_ ("Open a new terminal tab"), G_CALLBACK (terminal_window_action_new_tab), },
     { "new-window", "window-new", N_ ("Open T_erminal"), "<control><shift>n", N_ ("Open a new terminal window"), G_CALLBACK (terminal_window_action_new_window), },
     { "detach-tab", NULL, N_ ("_Detach Tab"), "<control><shift>d", NULL, G_CALLBACK (terminal_window_action_detach_tab), },
-    { "close-tab", GTK_STOCK_CLOSE, N_ ("C_lose Tab"), "<control><shift>w", NULL, G_CALLBACK (terminal_window_action_close_tab), },
-    { "close-window", GTK_STOCK_QUIT, N_ ("_Close Window"), "<control><shift>q", NULL, G_CALLBACK (terminal_window_action_close_window), },
+    { "close-tab", GTK_STOCK_CLOSE, N_ ("Close T_ab"), "<control><shift>w", NULL, G_CALLBACK (terminal_window_action_close_tab), },
+    { "close-window", GTK_STOCK_QUIT, N_ ("Close _Window"), "<control><shift>q", NULL, G_CALLBACK (terminal_window_action_close_window), },
   { "edit-menu", NULL, N_ ("_Edit"), NULL, NULL, NULL, },
     { "copy", GTK_STOCK_COPY, N_ ("_Copy"), "<control><shift>c", N_ ("Copy to clipboard"), G_CALLBACK (terminal_window_action_copy), },
     { "paste", GTK_STOCK_PASTE, N_ ("_Paste"), "<control><shift>v", N_ ("Paste from clipboard"), G_CALLBACK (terminal_window_action_paste), },
@@ -569,15 +569,16 @@ terminal_window_confirm_close (TerminalWindow *window)
                                         | GTK_DIALOG_MODAL,
                                         NULL);
 
-  button = gtk_dialog_add_button (GTK_DIALOG (dialog),
-                                  GTK_STOCK_CANCEL,
-                                  GTK_RESPONSE_CANCEL);
+  gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
 
-  button = gtk_dialog_add_button (GTK_DIALOG (dialog),
-                                  _("Close all tabs"),
-                                  GTK_RESPONSE_YES);
-  gtk_widget_grab_default (button);
+  button = xfce_gtk_button_new_mixed (GTK_STOCK_CLOSE, _("Close T_ab"));
+  gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_CLOSE);
+  gtk_widget_show (button);
+
+  button = xfce_gtk_button_new_mixed (GTK_STOCK_QUIT, _("Close _Window"));
+  gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_YES);
   gtk_widget_grab_focus (button);
+  gtk_widget_show (button);
 
   hbox = gtk_hbox_new (FALSE, 6);
   gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
@@ -593,8 +594,8 @@ terminal_window_confirm_close (TerminalWindow *window)
   gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
 
-  message = g_strdup_printf (_("This window has %d tabs open. Closing\nthis "
-                               "window will also close all its tabs."), n_tabs);
+  message = g_strdup_printf (_("This window has %d tabs open. Closing this window\n"
+                               "will also close all its tabs."), n_tabs);
   markup = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
                             _("Close all tabs?"), message);
   g_free (message);
@@ -623,6 +624,11 @@ terminal_window_confirm_close (TerminalWindow *window)
                         NULL);
         }
     }
+  else if (response == GTK_RESPONSE_CLOSE
+           && window->active != NULL)
+    {
+      gtk_widget_destroy (GTK_WIDGET (window->active));
+    }
 
   gtk_widget_destroy (dialog);
 


More information about the Xfce4-commits mailing list