diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index 81eb92923d..6a341d0e55 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c @@ -194,10 +194,22 @@ void sb_skin_update(enum screen_type screen, bool force) * so still update those */ if (lcd_active() || (i != SCREEN_MAIN)) #endif - skin_update(&sb_skin[i], force? + { + bool full_update = false; +#if NB_SCREENS > 1 + if (i==SCREEN_MAIN && sb_skin[i].sync_data->do_full_update) + { + full_update = true; + sb_skin[i].sync_data->do_full_update = false; + } +#else + full_update = sb_skin[i].sync_data->do_full_update; + sb_skin[i].sync_data->do_full_update = false; +#endif + skin_update(&sb_skin[i], force || full_update? SKIN_REFRESH_ALL : SKIN_REFRESH_NON_STATIC); + } next_update[i] = current_tick + update_delay; /* don't update too often */ - sb_skin[SCREEN_MAIN].sync_data->do_full_update = false; } } diff --git a/apps/gui/wps.c b/apps/gui/wps.c index 7d583a82b4..8b3f671e34 100644 --- a/apps/gui/wps.c +++ b/apps/gui/wps.c @@ -1116,11 +1116,21 @@ long gui_wps_show(void) if (lcd_active() || (i != SCREEN_MAIN)) #endif { - skin_update(&gui_wps[i], wps_sync_data.do_full_update ? - SKIN_REFRESH_ALL : SKIN_REFRESH_NON_STATIC); + bool full_update = false; +#if NB_SCREENS > 1 + if (i==SCREEN_MAIN && wps_sync_data.do_full_update) + { + full_update = true; + wps_sync_data.do_full_update = false; + } +#else + full_update = wps_sync_data.do_full_update; + wps_sync_data.do_full_update = false; +#endif + skin_update(&gui_wps[i], full_update ? + SKIN_REFRESH_ALL : SKIN_REFRESH_NON_STATIC); } } - wps_sync_data.do_full_update = false; update = false; }