Dmitry Timoshkov : winex11.drv: Make sure that default clipping region exists before calling ExcludeUpdateRgn ().
Module: wine Branch: master Commit: 38167e71d1ccff264d269c3bee7e1a448871829a URL: http://source.winehq.org/git/wine.git/?a=commit;h=38167e71d1ccff264d269c3bee... Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Mon Jan 31 19:30:43 2011 +0800 winex11.drv: Make sure that default clipping region exists before calling ExcludeUpdateRgn(). --- dlls/winex11.drv/window.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 65c046b..082c928 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1605,7 +1605,7 @@ static void move_window_bits( struct x11drv_win_data *data, const RECT *old_rect RECT dst_rect = *new_rect; HDC hdc_src, hdc_dst; INT code; - HRGN rgn = 0; + HRGN rgn; HWND parent = 0; if (!data->whole_window) @@ -1624,6 +1624,9 @@ static void move_window_bits( struct x11drv_win_data *data, const RECT *old_rect hdc_src = hdc_dst = GetDCEx( data->hwnd, 0, DCX_CACHE ); } + rgn = CreateRectRgnIndirect( &dst_rect ); + SelectClipRgn( hdc_dst, rgn ); + DeleteObject( rgn ); ExcludeUpdateRgn( hdc_dst, data->hwnd ); code = X11DRV_START_EXPOSURES; @@ -1636,6 +1639,7 @@ static void move_window_bits( struct x11drv_win_data *data, const RECT *old_rect dst_rect.right - dst_rect.left, dst_rect.bottom - dst_rect.top, hdc_src, src_rect.left, src_rect.top, SRCCOPY ); + rgn = 0; code = X11DRV_END_EXPOSURES; ExtEscape( hdc_dst, X11DRV_ESCAPE, sizeof(code), (LPSTR)&code, sizeof(rgn), (LPSTR)&rgn );
participants (1)
-
Alexandre Julliard