[1mdiff --git a/src/app.c b/src/app.c[m
[1mindex 3b6752de..555206a9 100644[m
[1m--- a/src/app.c[m
[1m+++ b/src/app.c[m
[36m@@ -1000,6 +1000,9 @@[m [mvoid processEvents_App(enum iAppEventMode eventMode) {[m
case SDL_APP_LOWMEMORY:[m
clearCache_App_();[m
break;[m
[32m+[m[32m case SDL_APP_WILLENTERFOREGROUND:[m
[32m+[m[32m invalidate_Window(d->window);[m
[32m+[m[32m break;[m
case SDL_APP_DIDENTERFOREGROUND:[m
gotEvents = iTrue;[m
d->warmupFrames = 5;[m
[1mdiff --git a/src/ui/window.c b/src/ui/window.c[m
[1mindex 22cf1fb0..cd8f2e12 100644[m
[1m--- a/src/ui/window.c[m
[1m+++ b/src/ui/window.c[m
[36m@@ -515,15 +515,15 @@[m [mvoid init_Window(iWindow *d, iRect rect) {[m
[m
void deinit_Window(iWindow *d) {[m
iRecycle();[m
[31m- if (theWindow_ == d) {[m
[31m- theWindow_ = NULL;[m
[31m- }[m
iForIndices(i, d->roots) {[m
if (d->roots[i]) {[m
setCurrent_Root(d->roots[i]);[m
deinit_Root(d->roots[i]);[m
}[m
}[m
[32m+[m[32m if (theWindow_ == d) {[m
[32m+[m[32m theWindow_ = NULL;[m
[32m+[m[32m }[m
setCurrent_Root(NULL);[m
delete_String(d->pendingSplitUrl);[m
deinit_Text();[m
[36m@@ -566,14 +566,18 @@[m [miRoot *otherRoot_Window(const iWindow *d, iRoot *root) {[m
return root == d->roots[0] && d->roots[1] ? d->roots[1] : d->roots[0];[m
}[m
[m
[31m-void invalidate_Window(iWindow *d) {[m
[31m- if (d && !d->isInvalidated) {[m
[32m+[m[32mstatic void invalidate_Window_(iWindow *d, iBool forced) {[m
[32m+[m[32m if (d && (!d->isInvalidated || forced)) {[m
d->isInvalidated = iTrue;[m
resetFonts_Text();[m
postCommand_App("theme.changed auto:1"); /* forces UI invalidation */[m
}[m
}[m
[m
[32m+[m[32mvoid invalidate_Window(iWindow *d) {[m
[32m+[m[32m invalidate_Window_(d, iFalse);[m
[32m+[m[32m}[m
[32m+[m
static iBool isNormalPlacement_Window_(const iWindow *d) {[m
if (d->isDrawFrozen) return iFalse;[m
#if defined (iPlatformApple)[m
[36m@@ -741,14 +745,14 @@[m [mstatic iBool handleWindowEvent_Window_(iWindow *d, const SDL_WindowEvent *ev) {[m
return iTrue;[m
case SDL_WINDOWEVENT_RESTORED:[m
updateSize_Window_(d, iTrue);[m
[31m- invalidate_Window(d);[m
[32m+[m[32m invalidate_Window_(d, iTrue);[m
d->isMinimized = iFalse;[m
postRefresh_App();[m
return iTrue;[m
case SDL_WINDOWEVENT_MINIMIZED:[m
d->isMinimized = iTrue;[m
return iTrue;[m
[31m-#endif[m
[32m+[m[32m#endif /* defined (iPlatformDesktop) */[m
case SDL_WINDOWEVENT_LEAVE:[m
unhover_Widget();[m
d->isMouseInside = iFalse;[m
[36m@@ -772,7 +776,7 @@[m [mstatic iBool handleWindowEvent_Window_(iWindow *d, const SDL_WindowEvent *ev) {[m
d->isExposed = iTrue;[m
#if defined (iPlatformMobile)[m
/* Returned to foreground, may have lost buffered content. */[m
[31m- invalidate_Window_(d);[m
[32m+[m[32m invalidate_Window_(d, iTrue);[m
postCommand_App("window.unfreeze");[m
#endif[m
return iFalse;[m
[36m@@ -1023,7 +1027,10 @@[m [mvoid draw_Window(iWindow *d) {[m
/* Clear the window. The clear color is visible as a border around the window[m
when the custom frame is being used. */ {[m
#if defined (iPlatformAppleMobile)[m
[31m- const iColor back = get_Color(tmBackground_ColorId);[m
[32m+[m[32m iColor back = get_Color(uiBackground_ColorId);[m
[32m+[m[32m if (deviceType_App() == phone_AppDeviceType) {[m
[32m+[m[32m /* Page background extends to safe area, so fill it completely. */[m
[32m+[m[32m back = get_Color(tmBackground_ColorId);[m
#else[m
const iColor back = get_Color(gotFocus && d->place.snap != maximized_WindowSnap &&[m
~winFlags & SDL_WINDOW_FULLSCREEN_DESKTOP[m
text/plain
This content has been proxied by September (ba2dc).