changeset 2863:4b92a65f8367

Fix #645: Hide Bars cannot be toggled after Geeqie restart https://github.com/BestImageViewer/geeqie/issues/645
author Colin Clark <colin.clark@cclark.uk>
date Sat, 17 Nov 2018 19:48:35 +0000
parents f105ca657cb3
children 9104756a7828
files src/layout.c src/layout_util.c
diffstat 2 files changed, 34 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/layout.c	Wed Nov 14 10:15:23 2018 +0000
+++ b/src/layout.c	Sat Nov 17 19:48:35 2018 +0000
@@ -2532,6 +2532,14 @@
 
 	WRITE_NL(); WRITE_BOOL(*layout, toolbar_hidden);
 	WRITE_NL(); WRITE_BOOL(*layout, show_info_pixel);
+	WRITE_SEPARATOR();
+
+	WRITE_NL(); WRITE_BOOL(*layout, bars_state.info);
+	WRITE_NL(); WRITE_BOOL(*layout, bars_state.sort);
+	WRITE_NL(); WRITE_BOOL(*layout, bars_state.tools_float);
+	WRITE_NL(); WRITE_BOOL(*layout, bars_state.tools_hidden);
+	WRITE_NL(); WRITE_BOOL(*layout, bars_state.hidden);
+	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_UINT(*layout, image_overlay.state);
 	WRITE_NL(); WRITE_INT(*layout, image_overlay.histogram_channel);
@@ -2618,6 +2626,12 @@
 		if (READ_BOOL(*layout, toolbar_hidden)) continue;
 		if (READ_BOOL(*layout, show_info_pixel)) continue;
 
+		if (READ_BOOL(*layout, bars_state.info)) continue;
+		if (READ_BOOL(*layout, bars_state.sort)) continue;
+		if (READ_BOOL(*layout, bars_state.tools_float)) continue;
+		if (READ_BOOL(*layout, bars_state.tools_hidden)) continue;
+		if (READ_BOOL(*layout, bars_state.hidden)) continue;
+
 		if (READ_UINT(*layout, image_overlay.state)) continue;
 		if (READ_INT(*layout, image_overlay.histogram_channel)) continue;
 		if (READ_INT(*layout, image_overlay.histogram_mode)) continue;
--- a/src/layout_util.c	Wed Nov 14 10:15:23 2018 +0000
+++ b/src/layout_util.c	Sat Nov 17 19:48:35 2018 +0000
@@ -1114,6 +1114,10 @@
 {
 	LayoutWindow *lw = data;
 
+	if (lw->options.bars_state.hidden == gtk_toggle_action_get_active(action))
+		{
+		return;
+		}
 	layout_bars_hide_toggle(lw);
 }
 
@@ -3155,6 +3159,9 @@
 	action = gtk_action_group_get_action(lw->action_group, "ShowFileFilter");
 	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->options.show_file_filter);
 
+	action = gtk_action_group_get_action(lw->action_group, "HideBars");
+	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), (lw->options.bars_state.hidden));
+
 	if (osd_flags & OSD_SHOW_HISTOGRAM)
 		{
 		action = gtk_action_group_get_action(lw->action_group, "HistogramChanR");
@@ -3407,7 +3414,14 @@
 		lw->options.bars_state.hidden = FALSE;
 		if (lw->options.bars_state.sort)
 			{
-			gtk_widget_show(lw->bar_sort);
+			if (lw->bar_sort)
+				{
+				gtk_widget_show(lw->bar_sort);
+				}
+			else
+				{
+				layout_bar_sort_set_default(lw);
+				}
 			}
 		if (lw->options.bars_state.info)
 			{
@@ -3424,7 +3438,11 @@
 		lw->options.bars_state.tools_float = lw->options.tools_float;
 		lw->options.bars_state.tools_hidden = lw->options.tools_hidden;
 
-		gtk_widget_hide(lw->bar);
+		if (lw->bar)
+			{
+			gtk_widget_hide(lw->bar);
+			}
+
 		if (lw->bar_sort)
 			gtk_widget_hide(lw->bar_sort);
 		layout_tools_float_set(lw, lw->options.tools_float, TRUE);