From: Twaik Yont <9674930+twaik@users.noreply.github.com> Replace NtUserExposeWindowSurface() with NtUserRedrawWindow() when handling WM_ANDROID_REFRESH for non-OpenGL windows. NtUserExposeWindowSurface() only exposes the existing surface contents, but does not invalidate the window or trigger WM_PAINT / WM_ERASEBKGND. As a result, when the display resolution changes, windows (including the desktop window managed by explorer.exe) may be resized without receiving a repaint, leaving stale contents on screen. Using NtUserRedrawWindow() ensures that the window is properly invalidated and repainted, so background and client areas are refreshed correctly after resolution changes. This fixes cases where the desktop background is not redrawn after applying a new display mode. Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com> --- dlls/wineandroid.drv/window.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dlls/wineandroid.drv/window.c b/dlls/wineandroid.drv/window.c index 97eb3004ba8..5ce4828e1a4 100644 --- a/dlls/wineandroid.drv/window.c +++ b/dlls/wineandroid.drv/window.c @@ -1197,9 +1197,7 @@ LRESULT ANDROID_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) detach_client_surfaces( hwnd ); } else - { - NtUserExposeWindowSurface( hwnd, 0, NULL, 0 ); - } + NtUserRedrawWindow( hwnd, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_ALLCHILDREN | RDW_FRAME ); return 0; default: FIXME( "got window msg %x hwnd %p wp %lx lp %lx\n", msg, hwnd, (long)wp, lp ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10712