1
From b56dfe662b0cd86d37d6c5c1964129a37332510c Mon Sep 17 00:00:00 2001
2
From: Christian Persch <chpe@gnome.org>
3
Date: Thu, 20 Jun 2013 20:17:45 +0000
4
Subject: appmenu: Add Quit item
6
https://bugzilla.gnome.org/show_bug.cgi?id=690910
8
diff --git a/src/terminal-app.c b/src/terminal-app.c
9
index 7ad5d14..6d6fbe9 100644
10
--- a/src/terminal-app.c
11
+++ b/src/terminal-app.c
12
@@ -282,6 +282,21 @@ app_menu_about_cb (GSimpleAction *action,
13
terminal_util_show_about (gtk_application_get_active_window (application));
17
+app_menu_quit_cb (GSimpleAction *action,
18
+ GVariant *parameter,
21
+ GtkApplication *application = user_data;
24
+ window = gtk_application_get_active_window (application);
25
+ if (TERMINAL_IS_WINDOW (window))
26
+ terminal_window_request_close (TERMINAL_WINDOW (window));
27
+ else /* a dialogue */
28
+ gtk_widget_destroy (GTK_WIDGET (window));
31
/* Class implementation */
33
G_DEFINE_TYPE (TerminalApp, terminal_app, GTK_TYPE_APPLICATION)
34
@@ -300,7 +315,8 @@ terminal_app_startup (GApplication *application)
35
const GActionEntry app_menu_actions[] = {
36
{ "preferences", app_menu_preferences_cb, NULL, NULL, NULL },
37
{ "help", app_menu_help_cb, NULL, NULL, NULL },
38
- { "about", app_menu_about_cb, NULL, NULL, NULL }
39
+ { "about", app_menu_about_cb, NULL, NULL, NULL },
40
+ { "quit", app_menu_quit_cb, NULL, NULL, NULL }
44
diff --git a/src/terminal-appmenu.ui b/src/terminal-appmenu.ui
45
index 36b7e0b..0c6b86b 100644
46
--- a/src/terminal-appmenu.ui
47
+++ b/src/terminal-appmenu.ui
49
<attribute name="label" translatable="yes">_About</attribute>
50
<attribute name="action">app.about</attribute>
53
+ <attribute name="label" translatable="yes">_Quit</attribute>
54
+ <attribute name="action">app.quit</attribute>
59
diff --git a/src/terminal-window.c b/src/terminal-window.c
60
index 743cbcb..c863f43 100644
61
--- a/src/terminal-window.c
62
+++ b/src/terminal-window.c
63
@@ -2860,10 +2860,7 @@ static void
64
file_close_window_callback (GtkAction *action,
65
TerminalWindow *window)
67
- if (confirm_close_window_or_tab (window, NULL))
70
- gtk_widget_destroy (GTK_WIDGET (window));
71
+ terminal_window_request_close (window);
75
@@ -3524,3 +3521,14 @@ terminal_window_get_ui_manager (TerminalWindow *window)
77
return priv->ui_manager;
81
+terminal_window_request_close (TerminalWindow *window)
83
+ g_return_if_fail (TERMINAL_IS_WINDOW (window));
85
+ if (confirm_close_window_or_tab (window, NULL))
88
+ gtk_widget_destroy (GTK_WIDGET (window));
90
diff --git a/src/terminal-window.h b/src/terminal-window.h
91
index dd50abb..1f2191d 100644
92
--- a/src/terminal-window.h
93
+++ b/src/terminal-window.h
94
@@ -85,6 +85,8 @@ void terminal_window_update_geometry (TerminalWindow *window);
96
GtkWidget* terminal_window_get_mdi_container (TerminalWindow *window);
98
+void terminal_window_request_close (TerminalWindow *window);
102
#endif /* TERMINAL_WINDOW_H */