Author: fireball Date: Thu Aug 13 14:49:49 2009 New Revision: 42653
URL: http://svn.reactos.org/svn/reactos?rev=42653&view=rev Log: - Intersect cursor clipping rectangle with virtual screen rectangle to get a real clipping. Now mouse cursor movements are fully clipped as expected. - Update windows Z order when window position changed. Experimental.
Modified: branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c
Modified: branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winent... ============================================================================== --- branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c [iso-8859-1] Thu Aug 13 14:49:49 2009 @@ -280,7 +280,19 @@
BOOL CDECL RosDrv_ClipCursor( LPCRECT clip ) { - return RosUserClipCursor( clip ); + RECT rcScreen, cursor_clip; + + /* Make up virtual screen rectangle*/ + rcScreen.left = 0; rcScreen.top = 0; + rcScreen.right = GetSystemMetrics(SM_CXVIRTUALSCREEN); + rcScreen.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN); + + /* Intersect with screen rectangle */ + if (!IntersectRect( &cursor_clip, &rcScreen, clip )) + return RosUserClipCursor(&rcScreen); + + /* Set clipping */ + return RosUserClipCursor( &cursor_clip ); }
BOOL CDECL RosDrv_GetScreenSaveActive(void) @@ -863,6 +875,8 @@ move_window_bits( data, &valid_rects[1], &valid_rects[0], &old_client_rect ); } } + + RosDrv_UpdateZOrder(hwnd, visible_rect); }
/* EOF */