=> 4055d5b3012d6e0cbee965f2d1aa53caf991fd4f
[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/gemini; charset=utf-8
This content has been proxied by September (ba2dc).