summaryrefslogtreecommitdiff
path: root/apps/plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugin.c')
-rw-r--r--apps/plugin.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/apps/plugin.c b/apps/plugin.c
index 2be6e10308..21dbe47c54 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -894,14 +894,16 @@ int plugin_load(const char* plugin, const void* parameter)
894 *(p_hdr->api) = &rockbox_api; 894 *(p_hdr->api) = &rockbox_api;
895 lcd_set_viewport(NULL); 895 lcd_set_viewport(NULL);
896 lcd_clear_display(); 896 lcd_clear_display();
897 lcd_update();
898 897
899#ifdef HAVE_REMOTE_LCD 898#ifdef HAVE_REMOTE_LCD
900 lcd_remote_set_viewport(NULL); 899 lcd_remote_set_viewport(NULL);
901 lcd_remote_clear_display(); 900 lcd_remote_clear_display();
902 lcd_remote_update(); 901 lcd_remote_update();
903#endif 902#endif
904 push_current_activity(ACTIVITY_PLUGIN); 903 if (get_current_activity() == ACTIVITY_WPS)
904 push_activity_without_refresh(ACTIVITY_PLUGIN);
905 else
906 push_current_activity(ACTIVITY_PLUGIN);
905 /* some plugins assume the entry cache doesn't move and save pointers to it 907 /* some plugins assume the entry cache doesn't move and save pointers to it
906 * they should be fixed properly instead of this lock */ 908 * they should be fixed properly instead of this lock */
907 tree_lock_cache(tree_get_context()); 909 tree_lock_cache(tree_get_context());
@@ -922,7 +924,16 @@ int plugin_load(const char* plugin, const void* parameter)
922 int rc = p_hdr->entry_point(parameter); 924 int rc = p_hdr->entry_point(parameter);
923 925
924 tree_unlock_cache(tree_get_context()); 926 tree_unlock_cache(tree_get_context());
925 pop_current_activity(ACTIVITY_REFRESH_NOW); 927
928 pop_current_activity(ACTIVITY_REFRESH_DEFERRED);
929 int curr_activity = get_current_activity();
930 if ((curr_activity != ACTIVITY_PLAYLISTVIEWER) &&
931 (curr_activity != ACTIVITY_WPS) &&
932 (rc != PLUGIN_GOTO_WPS))
933 {
934 FOR_NB_SCREENS(i)
935 skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL);
936 }
926 937
927 if (!pfn_tsr_exit) 938 if (!pfn_tsr_exit)
928 { /* close handle if plugin is no tsr one */ 939 { /* close handle if plugin is no tsr one */