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/winen…
==============================================================================
--- 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 */