changeset 1514:22174e704d0b

added option that simplifies saving of multi-window configurations
author nadvornik
date Sat, 04 Apr 2009 22:29:25 +0000
parents c9ed5a43c576
children 3e6cd9243162
files src/layout.c src/typedefs.h
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/layout.c	Sat Apr 04 22:09:50 2009 +0000
+++ b/src/layout.c	Sat Apr 04 22:29:25 2009 +0000
@@ -2151,6 +2151,9 @@
 	pref_checkbox_new_int(group, _("Show date in directories list view"),
 			      lc->options.show_directory_date, &lc->options.show_directory_date);
 
+	pref_checkbox_new_int(group, _("Exit program when this window is closed"),
+			      lc->options.exit_on_close, &lc->options.exit_on_close);
+
 	group = pref_group_new(vbox, FALSE, _("Start-up directory:"), GTK_ORIENTATION_VERTICAL);
 
 	button = pref_radiobutton_new(group, NULL, _("No change"),
@@ -2228,7 +2231,7 @@
 
 void layout_close(LayoutWindow *lw)
 {
-	if (layout_window_list && layout_window_list->next)
+	if (!lw->options.exit_on_close && layout_window_list && layout_window_list->next)
 		{
 		layout_free(lw);
 		}
@@ -2435,6 +2438,7 @@
 	WRITE_NL(); WRITE_CHAR(*layout, home_path);
 	WRITE_NL(); WRITE_CHAR(*layout, last_path);
 	WRITE_NL(); WRITE_UINT(*layout, startup_path);
+	WRITE_NL(); WRITE_BOOL(*layout, exit_on_close);
 	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_INT(*layout, main_window.x);
@@ -2508,6 +2512,7 @@
 		if (READ_CHAR(*layout, home_path)) continue;
 		if (READ_CHAR(*layout, last_path)) continue;
 		if (READ_UINT_CLAMP(*layout, startup_path, 0, STARTUP_PATH_HOME)) continue;
+		if (READ_BOOL(*layout, exit_on_close)) continue;
 
 		/* window positions */
 
--- a/src/typedefs.h	Sat Apr 04 22:09:50 2009 +0000
+++ b/src/typedefs.h	Sat Apr 04 22:29:25 2009 +0000
@@ -538,6 +538,8 @@
 	gchar *last_path;
 
 	StartUpPath startup_path;
+
+	gboolean exit_on_close;
 };
 
 struct _LayoutWindow