summaryrefslogtreecommitdiff
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,
143static bool update_playlist(bool force); 143static bool update_playlist(bool force);
144static enum pv_onplay_result onplay_menu(int index); 144static enum pv_onplay_result onplay_menu(int index);
145 145
146static void close_playlist_viewer(void); 146static void close_playlist_viewer(bool pop_activity);
147 147
148static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer, 148static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer,
149 int names_buffer_size) 149 int names_buffer_size)
@@ -525,11 +525,12 @@ static enum pv_onplay_result show_track_info(const struct playlist_entry *curren
525static enum pv_onplay_result open_with(const struct playlist_entry *current_track) 525static enum pv_onplay_result open_with(const struct playlist_entry *current_track)
526{ 526{
527 char selected_track[MAX_PATH]; 527 char selected_track[MAX_PATH];
528 close_playlist_viewer(); 528 close_playlist_viewer(false); /* don't pop activity yet – relevant for plugin_load */
529 529
530 strmemccpy(selected_track, current_track->name, sizeof(selected_track)); 530 strmemccpy(selected_track, current_track->name, sizeof(selected_track));
531 531
532 int plugin_return = filetype_list_viewers(selected_track); 532 int plugin_return = filetype_list_viewers(selected_track);
533 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
533 534
534 switch (plugin_return) 535 switch (plugin_return)
535 { 536 {
@@ -547,11 +548,11 @@ static enum pv_onplay_result open_with(const struct playlist_entry *current_trac
547static enum pv_onplay_result open_pictureflow(const struct playlist_entry *current_track) 548static enum pv_onplay_result open_pictureflow(const struct playlist_entry *current_track)
548{ 549{
549 char selected_track[MAX_PATH]; 550 char selected_track[MAX_PATH];
550 close_playlist_viewer(); 551 close_playlist_viewer(false); /* don't pop activity yet – relevant for plugin_load */
551 552
552 strmemccpy(selected_track, current_track->name, sizeof(selected_track)); 553 strmemccpy(selected_track, current_track->name, sizeof(selected_track));
553
554 int plugin_return = filetype_load_plugin((void *)"pictureflow", selected_track); 554 int plugin_return = filetype_load_plugin((void *)"pictureflow", selected_track);
555 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
555 556
556 switch (plugin_return) 557 switch (plugin_return)
557 { 558 {
@@ -1092,14 +1093,15 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename,
1092 } 1093 }
1093 1094
1094exit: 1095exit:
1095 close_playlist_viewer(); 1096 close_playlist_viewer(true);
1096 return ret; 1097 return ret;
1097} 1098}
1098 1099
1099static void close_playlist_viewer(void) 1100static void close_playlist_viewer(bool pop_activity)
1100{ 1101{
1101 talk_shutup(); 1102 talk_shutup();
1102 pop_current_activity(ACTIVITY_REFRESH_DEFERRED); 1103 if (pop_activity)
1104 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
1103 if (viewer.playlist) 1105 if (viewer.playlist)
1104 { 1106 {
1105 if (viewer.initial_selection) 1107 if (viewer.initial_selection)