From: Paul Gofman Subject: [PATCH] winex11.drv: Redraw window on Expose event if window surface has no region set. Message-Id: <20200403123457.20981-1-gofmanp@gmail.com> Date: Fri, 3 Apr 2020 15:34:57 +0300 Otherwise the window (partially) obscured by the other window sometimes fails to update when the obscuring window is moved or destroyed. Signed-off-by: Paul Gofman --- dlls/winex11.drv/bitblt.c | 5 +++++ dlls/winex11.drv/event.c | 1 + 2 files changed, 6 insertions(+) diff --git a/dlls/winex11.drv/bitblt.c b/dlls/winex11.drv/bitblt.c index b530ba7ba6..ac430ef4c0 100644 --- a/dlls/winex11.drv/bitblt.c +++ b/dlls/winex11.drv/bitblt.c @@ -2106,6 +2106,11 @@ HRGN expose_surface( struct window_surface *window_surface, const RECT *rect ) region = 0; } } + else + { + region = (HRGN)1; + } + window_surface->funcs->unlock( window_surface ); return region; } diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 10d71c2cb4..6424790a62 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -941,6 +941,7 @@ static BOOL X11DRV_Expose( HWND hwnd, XEvent *xev ) { surface_region = expose_surface( data->surface, &rect ); if (!surface_region) flags = 0; + else if(surface_region == (HRGN)1) surface_region = NULL; else OffsetRgn( surface_region, data->whole_rect.left - data->client_rect.left, data->whole_rect.top - data->client_rect.top ); -- 2.25.1