summaryrefslogtreecommitdiffstats
path: root/apps/playlist_viewer.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playlist_viewer.c')
-rw-r--r--apps/playlist_viewer.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index 90a47c35ea..4c57d1a5ce 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -143,7 +143,7 @@ static void format_line(const struct playlist_entry* track, char* str,
static bool update_playlist(bool force);
static enum pv_onplay_result onplay_menu(int index);
-static void close_playlist_viewer(void);
+static void close_playlist_viewer(bool pop_activity);
static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer,
int names_buffer_size)
@@ -525,11 +525,12 @@ static enum pv_onplay_result show_track_info(const struct playlist_entry *curren
static enum pv_onplay_result open_with(const struct playlist_entry *current_track)
{
char selected_track[MAX_PATH];
- close_playlist_viewer();
+ close_playlist_viewer(false); /* don't pop activity yet – relevant for plugin_load */
strmemccpy(selected_track, current_track->name, sizeof(selected_track));
int plugin_return = filetype_list_viewers(selected_track);
+ pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
switch (plugin_return)
{
@@ -547,11 +548,11 @@ static enum pv_onplay_result open_with(const struct playlist_entry *current_trac
static enum pv_onplay_result open_pictureflow(const struct playlist_entry *current_track)
{
char selected_track[MAX_PATH];
- close_playlist_viewer();
+ close_playlist_viewer(false); /* don't pop activity yet – relevant for plugin_load */
strmemccpy(selected_track, current_track->name, sizeof(selected_track));
-
int plugin_return = filetype_load_plugin((void *)"pictureflow", selected_track);
+ pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
switch (plugin_return)
{
@@ -1092,14 +1093,15 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename,
}
exit:
- close_playlist_viewer();
+ close_playlist_viewer(true);
return ret;
}
-static void close_playlist_viewer(void)
+static void close_playlist_viewer(bool pop_activity)
{
talk_shutup();
- pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
+ if (pop_activity)
+ pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
if (viewer.playlist)
{
if (viewer.initial_selection)