On Tue May 19 21:50:47 2026 +0000, Twaik Yont wrote:
I think I understand the issue better now. `add_bounds_rect()` in `NtUserExposeWindowSurface()` only updates the surface dirty/present path, but it does not create a normal window update region. So it looks like the newly exposed desktop area never becomes invalidated for the normal repaint path. It also seems like the most appropriate fix would probably be to trigger normal window content invalidation there through `NtUserRedrawWindow()`. NtUserExposeWindowSurface is for getting the bits from the surface to the screen. The update region is to get the app to repaint the bits into the surface. They are two separate things. Forcing a repaint every time we want to copy the bits would of course work, but it's not what we want.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10712#note_140651