diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index d586a9a9e2..c84e7c63fe 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c @@ -687,6 +687,10 @@ long gui_wps_show(void) } if (exit) { + if (wps_state.id3) + strcpy(wps_state.current_track_path, wps_state.id3->path); + else + wps_state.current_track_path[0] = '\0'; #ifdef HAVE_LCD_CHARCELLS status_set_record(false); status_set_audio(false); diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h index 3836d9291b..4193cf8301 100644 --- a/apps/gui/gwps.h +++ b/apps/gui/gwps.h @@ -469,6 +469,9 @@ struct wps_state bool wps_time_countup; struct mp3entry* id3; struct mp3entry* nid3; + char current_track_path[MAX_PATH]; /* used by root_menu.c to browse to the + current track at the time the audio is + stopped (so *id3 is invalid) */ }; diff --git a/apps/root_menu.c b/apps/root_menu.c index 418ea01cff..07bd4939e0 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c @@ -96,9 +96,9 @@ static int browser(void* param) filter = global_settings.dirfilter; if (global_settings.browse_current && last_screen == GO_TO_WPS && - wps_state.id3) + wps_state.current_track_path[0]) { - strcpy(folder, wps_state.id3->path); + strcpy(folder, wps_state.current_track_path); } #ifdef HAVE_HOTSWAP /* quick hack to stop crashing if you try entering the browser from the menu when you were in the card