diff options
Diffstat (limited to 'apps/plugin.c')
-rw-r--r-- | apps/plugin.c | 17 |
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 */ |