From 1fd7d93b5d4c1af9518ac06a6ca03b57a695285f Mon Sep 17 00:00:00 2001 From: James Tabor Date: Thu, 3 Mar 2011 13:59:17 +0000 Subject: [PATCH] [Win32k] - Fix the select of the clip region for a window. Apologies to Rafal Harabien select works like select, also don't assume the original author is always right. svn path=/trunk/; revision=50961 --- reactos/subsystems/win32/win32k/ntuser/window.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/reactos/subsystems/win32/win32k/ntuser/window.c b/reactos/subsystems/win32/win32k/ntuser/window.c index 981d446786d..00d454b05bd 100644 --- a/reactos/subsystems/win32/win32k/ntuser/window.c +++ b/reactos/subsystems/win32/win32k/ntuser/window.c @@ -4052,7 +4052,7 @@ NtUserSetWindowRgn( } else { - hrgnCopy = IntSysCreateRectRgnIndirect(&Window->rcWindow); //HRGN_WINDOW; + hrgnCopy = NULL; } if (Window->hrgnClip) @@ -4061,12 +4061,14 @@ NtUserSetWindowRgn( GreDeleteObject(Window->hrgnClip); } - if (Window->fnid != FNID_DESKTOP) - NtGdiOffsetRgn(hrgnCopy, Window->rcWindow.left, Window->rcWindow.top); - - /* Set public ownership */ - IntGdiSetRegionOwner(hrgnCopy, GDI_OBJ_HMGR_PUBLIC); + if (hrgnCopy) + { + if (Window->fnid != FNID_DESKTOP) + NtGdiOffsetRgn(hrgnCopy, Window->rcWindow.left, Window->rcWindow.top); + /* Set public ownership */ + IntGdiSetRegionOwner(hrgnCopy, GDI_OBJ_HMGR_PUBLIC); + } Window->hrgnClip = hrgnCopy; Ret = co_WinPosSetWindowPos(Window, HWND_TOP, 0, 0, 0, 0, bRedraw ? flags : (flags|SWP_NOREDRAW) );