gui: align display updates, reduce UI glitches

Based on commits ce33902 and 8990d52 (without PictureFlow)
from "Rockpod" fork by Nux Li (https://github.com/nuxcodes/rockpod),
with some adjustments.

Addresses flickering when:
- plugin is opened/closed
- activity changes
- theme is toggled
- QuickScreen is opened

In these cases, skin_render will not immediately update the display
anymore, but instead will wait until the UI viewport is ready to be
drawn as well, so we don't produce unnecessary visual glitches.

Change-Id: I8bed8f06221d3e767a32450f199e69d742bc61cd
This commit is contained in:
Christian Soffke 2026-04-24 19:25:52 +02:00
parent 89d24f3bd4
commit c145d19e85
9 changed files with 59 additions and 7 deletions

View file

@ -1022,8 +1022,11 @@ int plugin_load(const char* plugin, const void* parameter)
pop_current_activity_without_refresh();
if (get_current_activity() != ACTIVITY_WPS)
{
skin_defer_rendering(true);
FOR_NB_SCREENS(i)
skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_ALL);
skin_defer_rendering(false);
sb_skin_force_next_update();
}
if (!pfn_tsr_exit)