Thumbnail fullscreen toggle behavior correction (#14527)

This commit is contained in:
sonninnos 2022-10-18 11:05:01 +03:00 committed by GitHub
parent b846a5d792
commit 0597aa6939
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 9 deletions

View File

@ -7095,12 +7095,10 @@ static void ozone_set_thumbnail_content(void *data, const char *s)
#endif
case OZONE_SYSTEM_TAB_MUSIC:
ozone->want_thumbnail_bar = false;
ozone->fullscreen_thumbnails_available = false;
break;
default:
ozone->want_thumbnail_bar = true;
ozone->fullscreen_thumbnails_available = true;
break;
}
}
@ -7262,11 +7260,14 @@ static bool INLINE ozone_fullscreen_thumbnails_available(ozone_handle_t *ozone)
ozone->fullscreen_thumbnails_available
&& !ozone->cursor_in_sidebar
&& ozone->show_thumbnail_bar
&& ((ozone->thumbnails.right.status != GFX_THUMBNAIL_STATUS_MISSING) ||
(ozone->thumbnails.left.status != GFX_THUMBNAIL_STATUS_MISSING) ||
(ozone->thumbnails.savestate.status != GFX_THUMBNAIL_STATUS_MISSING))
&& (gfx_thumbnail_is_enabled(ozone->thumbnail_path_data, GFX_THUMBNAIL_RIGHT) ||
gfx_thumbnail_is_enabled(ozone->thumbnail_path_data, GFX_THUMBNAIL_LEFT));
gfx_thumbnail_is_enabled(ozone->thumbnail_path_data, GFX_THUMBNAIL_LEFT))
&& ( (ozone->thumbnails.left.status == GFX_THUMBNAIL_STATUS_AVAILABLE ||
(ozone->thumbnails.left.status < GFX_THUMBNAIL_STATUS_AVAILABLE
&& ozone->thumbnails_left_status_prev <= GFX_THUMBNAIL_STATUS_AVAILABLE))
|| (ozone->thumbnails.right.status == GFX_THUMBNAIL_STATUS_AVAILABLE ||
(ozone->thumbnails.right.status < GFX_THUMBNAIL_STATUS_AVAILABLE
&& ozone->thumbnails_right_status_prev <= GFX_THUMBNAIL_STATUS_AVAILABLE)));
if (ozone->is_state_slot &&
(ozone->thumbnails.savestate.status == GFX_THUMBNAIL_STATUS_MISSING ||
@ -7472,7 +7473,7 @@ static enum menu_action ozone_parse_menu_entry_action(
/* If this is a menu with thumbnails and cursor
* is not in the sidebar, attempt to show
* fullscreen thumbnail view */
if (ozone->fullscreen_thumbnails_available &&
if (ozone_fullscreen_thumbnails_available(ozone) &&
!ozone->show_fullscreen_thumbnails &&
!ozone->cursor_in_sidebar)
{

View File

@ -7619,6 +7619,11 @@ static enum menu_action rgui_parse_menu_entry_action(
{
settings_t *settings = config_get_ptr();
new_action = MENU_ACTION_NOOP;
if (!rgui->entry_has_thumbnail && !rgui->entry_has_left_thumbnail)
break;
if (!rgui->show_fs_thumbnail && rgui->gfx_thumbnails_prev < 0)
rgui->gfx_thumbnails_prev = settings->uints.gfx_thumbnails;
@ -7644,7 +7649,6 @@ static enum menu_action rgui_parse_menu_entry_action(
rgui_thumbnail_cycle_dupe(rgui);
rgui_toggle_fs_thumbnail(rgui, config_get_ptr()->bools.menu_rgui_inline_thumbnails);
new_action = MENU_ACTION_NOOP;
if (!rgui->show_fs_thumbnail)
rgui->gfx_thumbnails_prev = -1;

View File

@ -4228,6 +4228,23 @@ static void xmb_show_fullscreen_thumbnails(
xmb->show_fullscreen_thumbnails = true;
}
static bool INLINE xmb_fullscreen_thumbnails_available(xmb_handle_t *xmb)
{
bool ret =
xmb->fullscreen_thumbnails_available
&& (gfx_thumbnail_is_enabled(xmb->thumbnail_path_data, GFX_THUMBNAIL_RIGHT) ||
gfx_thumbnail_is_enabled(xmb->thumbnail_path_data, GFX_THUMBNAIL_LEFT))
&& (xmb->thumbnails.left.status == GFX_THUMBNAIL_STATUS_AVAILABLE ||
xmb->thumbnails.right.status == GFX_THUMBNAIL_STATUS_AVAILABLE);
if (xmb->is_state_slot &&
(xmb->thumbnails.savestate.status == GFX_THUMBNAIL_STATUS_MISSING ||
xmb->thumbnails.savestate.status == GFX_THUMBNAIL_STATUS_UNKNOWN))
ret = false;
return ret;
}
/* Common thumbnail switch requires FILE_TYPE_RPL_ENTRY,
* which only works with playlists, therefore activate it
* manually for Quick Menu, Explore and Database */
@ -4282,7 +4299,7 @@ static enum menu_action xmb_parse_menu_entry_action(
/* If this is a menu with thumbnails, attempt
* to show fullscreen thumbnail view */
if (xmb->fullscreen_thumbnails_available &&
if (xmb_fullscreen_thumbnails_available(xmb) &&
!xmb->show_fullscreen_thumbnails)
{
xmb_hide_fullscreen_thumbnails(xmb, false);