From: Colin Clark Date: Thu, 28 Mar 2024 14:57:19 +0000 (+0000) Subject: Fix #1303: Automatically hide image overlay in fullscreen mode X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=9c786c589680c658df7afd9fb220cad755021447 Fix #1303: Automatically hide image overlay in fullscreen mode https://github.com/BestImageViewer/geeqie/issues/1303 Additional option Edit/Preferences/Behavior/Hide OSD In Fullscreen --- diff --git a/doc/docbook/GuideOptionsBehavior.xml b/doc/docbook/GuideOptionsBehavior.xml index 82d8f089..6e764477 100644 --- a/doc/docbook/GuideOptionsBehavior.xml +++ b/doc/docbook/GuideOptionsBehavior.xml @@ -180,6 +180,22 @@ Open collection windows with "Always on Top" set. + + + Hide window in fullscreen + + + When alt-tabbing, prevent Geeqie window showing twice. + + + + + Hide OSD in fullscreen + + + Hide Overlay Screen Display in fullscreen mode. + + Recent folder list maximum size diff --git a/src/fullscreen.cc b/src/fullscreen.cc index dd9b3361..3593fdcb 100644 --- a/src/fullscreen.cc +++ b/src/fullscreen.cc @@ -458,6 +458,12 @@ FullScreenData *fullscreen_start(GtkWidget *window, ImageWindow *imd, fs->cursor_state = FULLSCREEN_CURSOR_HIDDEN; + fs->osd_flags = image_osd_get(imd); + if (options->hide_osd_in_fullscreen) + { + image_osd_set(imd, OSD_SHOW_NOTHING); + } + fs->normal_window = window; fs->normal_imd = imd; @@ -582,6 +588,11 @@ void fullscreen_stop(FullScreenData *fs) { if (!fs) return; + if (options->hide_osd_in_fullscreen) + { + image_osd_set(fs->normal_imd, fs->osd_flags); + } + if (fs->saver_block_id) g_source_remove(fs->saver_block_id); fullscreen_hide_mouse_disable(fs); diff --git a/src/fullscreen.h b/src/fullscreen.h index 32b0b917..764fe8cb 100644 --- a/src/fullscreen.h +++ b/src/fullscreen.h @@ -25,6 +25,8 @@ #include #include +#include "image-overlay.h" + struct ImageWindow; struct FullScreenData @@ -39,6 +41,7 @@ struct FullScreenData guint busy_mouse_id; /**< event source id */ gint cursor_state; +OsdShowFlags osd_flags; guint saver_block_id; /**< event source id */ diff --git a/src/options.cc b/src/options.cc index 6171ed70..23ab1444 100644 --- a/src/options.cc +++ b/src/options.cc @@ -95,6 +95,7 @@ ConfOptions *init_options(ConfOptions *options) options->collections_duplicates = FALSE; options->collections_on_top = FALSE; options->hide_window_in_fullscreen = TRUE; + options->hide_osd_in_fullscreen = FALSE; memset(&options->image.border_color, 0, sizeof(options->image.border_color)); memset(&options->image.alpha_color_1, 0, sizeof(options->image.alpha_color_1)); diff --git a/src/options.h b/src/options.h index 894f25e2..a759ce85 100644 --- a/src/options.h +++ b/src/options.h @@ -105,6 +105,7 @@ struct ConfOptions gboolean collections_duplicates; gboolean collections_on_top; gboolean hide_window_in_fullscreen; + gboolean hide_osd_in_fullscreen; gchar *help_search_engine; diff --git a/src/preferences.cc b/src/preferences.cc index b60c6d09..381b696f 100644 --- a/src/preferences.cc +++ b/src/preferences.cc @@ -496,6 +496,7 @@ static void config_window_apply() options->collections_duplicates = c_options->collections_duplicates; options->collections_on_top = c_options->collections_on_top; options->hide_window_in_fullscreen = c_options->hide_window_in_fullscreen; + options->hide_osd_in_fullscreen = c_options->hide_osd_in_fullscreen; config_entry_to_option(help_search_engine_entry, &options->help_search_engine, nullptr); options->external_preview.enable = c_options->external_preview.enable; @@ -3555,6 +3556,7 @@ static void config_tab_behavior(GtkWidget *notebook) GtkWidget *with_rename; GtkWidget *collections_on_top; GtkWidget *hide_window_in_fullscreen; + GtkWidget *hide_osd_in_fullscreen; GtkWidget *checkbox; GtkWidget *tmp; @@ -3648,6 +3650,10 @@ static void config_tab_behavior(GtkWidget *notebook) options->hide_window_in_fullscreen, &c_options->hide_window_in_fullscreen); gtk_widget_set_tooltip_text(hide_window_in_fullscreen,"When alt-tabbing, prevent Geeqie window showing twice"); + hide_osd_in_fullscreen = pref_checkbox_new_int(group, _("Hide OSD in fullscreen"), + options->hide_osd_in_fullscreen, &c_options->hide_osd_in_fullscreen); + gtk_widget_set_tooltip_text(hide_osd_in_fullscreen,"Hide Overlay Screen Display in fullscreen mode"); + pref_spin_new_int(group, _("Recent folder list maximum size"), nullptr, 1, 50, 1, options->open_recent_list_maxsize, &c_options->open_recent_list_maxsize); diff --git a/src/rcfile.cc b/src/rcfile.cc index 73e3d587..6527fac7 100644 --- a/src/rcfile.cc +++ b/src/rcfile.cc @@ -400,6 +400,7 @@ static void write_global_attributes(GString *outstr, gint indent) WRITE_NL(); WRITE_BOOL(*options, collections_duplicates); WRITE_NL(); WRITE_BOOL(*options, collections_on_top); WRITE_NL(); WRITE_BOOL(*options, hide_window_in_fullscreen); + WRITE_NL(); WRITE_BOOL(*options, hide_osd_in_fullscreen); WRITE_NL(); WRITE_BOOL(*options, selectable_bars.menu_bar); WRITE_NL(); WRITE_BOOL(*options, selectable_bars.status_bar); @@ -905,6 +906,7 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_BOOL(*options, collections_duplicates)) continue; if (READ_BOOL(*options, collections_on_top)) continue; if (READ_BOOL(*options, hide_window_in_fullscreen)) continue; + if (READ_BOOL(*options, hide_osd_in_fullscreen)) continue; if (READ_BOOL(*options, selectable_bars.menu_bar)) continue; if (READ_BOOL(*options, selectable_bars.status_bar)) continue;