winex11.drv: When copying window bits exclude an update region only if the parent doesn't clip its children.

Dmitry Timoshkov dmitry at codeweavers.com
Thu Jan 27 02:35:33 CST 2011


This patch fixes the regression reported in the bug 25107.
---
 dlls/winex11.drv/window.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 65c046b..a86a30e 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -1624,7 +1624,8 @@ static void move_window_bits( struct x11drv_win_data *data, const RECT *old_rect
         hdc_src = hdc_dst = GetDCEx( data->hwnd, 0, DCX_CACHE );
     }
 
-    ExcludeUpdateRgn( hdc_dst, data->hwnd );
+    if (!parent || !(GetWindowLongW( parent, GWL_STYLE ) & WS_CLIPCHILDREN))
+        ExcludeUpdateRgn( hdc_dst, data->hwnd );
 
     code = X11DRV_START_EXPOSURES;
     ExtEscape( hdc_dst, X11DRV_ESCAPE, sizeof(code), (LPSTR)&code, 0, NULL );
-- 
1.7.3.5




More information about the wine-patches mailing list