From 74e04b2e8d63f558ae678dce744bf83740f03bff Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Sat, 17 Nov 2018 19:48:35 +0000 Subject: [PATCH] Fix #645: Hide Bars cannot be toggled after Geeqie restart https://github.com/BestImageViewer/geeqie/issues/645 --- src/layout.c | 14 ++++++++++++++ src/layout_util.c | 22 ++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/layout.c b/src/layout.c index 50062416..9f4ec0b0 100644 --- a/src/layout.c +++ b/src/layout.c @@ -2532,6 +2532,14 @@ void layout_write_attributes(LayoutOptions *layout, GString *outstr, gint indent 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 @@ void layout_load_attributes(LayoutOptions *layout, const gchar **attribute_names 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; diff --git a/src/layout_util.c b/src/layout_util.c index 86449b6a..f5e03af5 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -1114,6 +1114,10 @@ static void layout_menu_hide_bars_cb(GtkToggleAction *action, gpointer data) { 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 @@ static void layout_util_sync_views(LayoutWindow *lw) 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 @@ static void layout_bars_hide_toggle(LayoutWindow *lw) 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 @@ static void layout_bars_hide_toggle(LayoutWindow *lw) 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); -- 2.20.1