Author: fireball Date: Mon Apr 26 15:21:19 2010 New Revision: 47034
URL: http://svn.reactos.org/svn/reactos?rev=47034&view=rev Log: - SWM: Create clipping region in a shorter way for SwmDc (previously due to passing NULL in rcBounds parameter to RosGdiSetDeviceClipping it was not really fully initialized). Should fix issues with copying contents of a moving window.
Modified: branches/arwinss/reactos/subsystems/win32/win32k/swm/winman.c
Modified: branches/arwinss/reactos/subsystems/win32/win32k/swm/winman.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32... ============================================================================== --- branches/arwinss/reactos/subsystems/win32/win32k/swm/winman.c [iso-8859-1] (original) +++ branches/arwinss/reactos/subsystems/win32/win32k/swm/winman.c [iso-8859-1] Mon Apr 26 15:21:19 2010 @@ -61,13 +61,26 @@ SwmCreateScreenDc() { ROS_DCINFO RosDc; + PDC pDC; + RECTL rcBounds;
/* Create the display DC */ RtlZeroMemory(&RosDc, sizeof(ROS_DCINFO)); RosDc.dwType = OBJ_DC; SwmDc = (HDC)0; RosGdiCreateDC(&RosDc, &SwmDc, NULL, NULL, NULL, NULL); - RosGdiSetDeviceClipping(SwmDc, 0, NULL, NULL); + + /* Set clipping to full screen */ + pDC = DC_Lock(SwmDc); + RECTL_vSetRect(&rcBounds, + 0, + 0, + pDC->rcVport.right, + pDC->rcVport.bottom); + IntEngDeleteClipRegion(pDC->CombinedClip); + pDC->CombinedClip = IntEngCreateClipRegion(1, &rcBounds, &rcBounds); + DC_Unlock(pDC); + //RosGdiSetDeviceClipping(SwmDc, 1, &rcBounds, &rcBounds);
/* Make it global */ GDIOBJ_SetOwnership(SwmDc, NULL);