Try this! Index: window.c =================================================================== --- window.c (revision 50957) +++ window.c (working copy) @@ -4052,7 +4052,7 @@ } else { - hrgnCopy = IntSysCreateRectRgnIndirect(&Window->rcWindow); //HRGN_WINDOW; + hrgnCopy = NULL; }
if (Window->hrgnClip) @@ -4061,12 +4061,14 @@ GreDeleteObject(Window->hrgnClip); }
- if (Window->fnid != FNID_DESKTOP) - NtGdiOffsetRgn(hrgnCopy, Window->rcWindow.left, Window->rcWindow.top); + if (hrgnCopy) + { + if (Window->fnid != FNID_DESKTOP) + NtGdiOffsetRgn(hrgnCopy, Window->rcWindow.left, Window->rcWindow.top);
- /* Set public ownership */ - IntGdiSetRegionOwner(hrgnCopy, GDI_OBJ_HMGR_PUBLIC); - + /* 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) );
Apologies to Rafal Harabien select works like select, also don't assume the original author is always right.