diff --git a/schemas/linux/application.gschema.xml.in b/schemas/linux/application.gschema.xml.in
index b3d1ec4..e3cb7ad 100644
--- a/schemas/linux/application.gschema.xml.in
+++ b/schemas/linux/application.gschema.xml.in
@@ -44,6 +44,18 @@
Allow changing of host session properties
+
+ true
+ Enable new tab actions
+ Enable new tab actions
+
+
+
+ true
+ Enable new window actions
+ Enable new window actions
+
+
diff --git a/src/objects/application/application.c b/src/objects/application/application.c
index c9bf265..461411b 100644
--- a/src/objects/application/application.c
+++ b/src/objects/application/application.c
@@ -352,14 +352,15 @@
G_APPLICATION_CLASS(pw3270Application_parent_class)->startup(application);
+ g_autoptr(GSettings) settings = pw3270_application_get_settings(application);
+
+ //
+ // Common actions
+ //
GAction * actions[] = {
pw3270_about_action_new(),
pw3270_preferences_action_new(),
- pw3270_new_tab_action_new(),
- pw3270_new_window_action_new(),
- pw3270_quit_action_new(),
- pw3270_open_window_action_new(),
- pw3270_open_tab_action_new()
+ pw3270_quit_action_new()
};
for(ix = 0; ix < G_N_ELEMENTS(actions); ix++) {
@@ -367,6 +368,38 @@
}
//
+ // New tab actions
+ //
+ if(g_settings_get_boolean(settings,"allow-new-tab-actions")) {
+
+ GAction * new_tab_actions[] = {
+ pw3270_open_tab_action_new(),
+ pw3270_new_tab_action_new()
+ };
+
+ for(ix = 0; ix < G_N_ELEMENTS(new_tab_actions); ix++) {
+ g_action_map_add_action(G_ACTION_MAP(application),new_tab_actions[ix]);
+ }
+
+ }
+
+ //
+ // New window actions
+ //
+ if(g_settings_get_boolean(settings,"allow-new-window-actions")) {
+
+ GAction * new_window_actions[] = {
+ pw3270_open_window_action_new(),
+ pw3270_new_window_action_new()
+ };
+
+ for(ix = 0; ix < G_N_ELEMENTS(new_window_actions); ix++) {
+ g_action_map_add_action(G_ACTION_MAP(application),new_window_actions[ix]);
+ }
+
+ }
+
+ //
// Setup application menus
//
GtkBuilder * builder;
--
libgit2 0.21.2