Fix a mouse bug for hide the cursor. It is working now with my test code
for ShowCursor and NtShowCursor. The code for it is not finish.
and it also working now hide the mouse with
EngMovePointer(SurfObj,-1,-1,NULL); and that did not work before.
Modified: trunk/reactos/subsys/win32k/eng/mouse.c
_____
Modified: trunk/reactos/subsys/win32k/eng/mouse.c
--- trunk/reactos/subsys/win32k/eng/mouse.c 2005-12-30 19:14:58 UTC
(rev 20465)
+++ trunk/reactos/subsys/win32k/eng/mouse.c 2005-12-30 20:15:07 UTC
(rev 20466)
@@ -72,14 +72,14 @@
tmp = HazardY2; HazardY2 = HazardY1; HazardY1 = tmp;
}
- ppdev->SafetyRemoveCount++;
-
- if (ppdev->SafetyRemoveLevel)
+ if (ppdev->SafetyRemoveLevel != 0)
{
- /* already hidden */
+ ppdev->SafetyRemoveCount++;
return FALSE;
}
+ ppdev->SafetyRemoveCount++;
+
if (pgp->Exclude.right >= HazardX1
&& pgp->Exclude.left <= HazardX2
&& pgp->Exclude.bottom >= HazardY1
Another coordinate transformation change. Fixes final problem with bug
1201.
Modified: trunk/reactos/subsys/win32k/objects/text.c
_____
Modified: trunk/reactos/subsys/win32k/objects/text.c
--- trunk/reactos/subsys/win32k/objects/text.c 2005-12-30 19:01:44 UTC
(rev 20462)
+++ trunk/reactos/subsys/win32k/objects/text.c 2005-12-30 19:10:43 UTC
(rev 20463)
@@ -1488,17 +1488,6 @@
// TODO: Write test-cases to exactly match real Windows in different
// bad parameters (e.g. does Windows check the DC or the RECT
first?).
- if (lprc && (fuOptions & (ETO_OPAQUE | ETO_CLIPPED)))
- {
- // At least one of the two flags were specified. Copy lprc. Once.
- Status = MmCopyFromCaller(&SpecifiedDestRect, lprc,
sizeof(RECT));
- if (!NT_SUCCESS(Status))
- {
- SetLastWin32Error(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- }
-
dc = DC_LockDc(hDC);
if (!dc)
{
@@ -1512,6 +1501,18 @@
return TRUE;
}
+ if (lprc && (fuOptions & (ETO_OPAQUE | ETO_CLIPPED)))
+ {
+ // At least one of the two flags were specified. Copy lprc. Once.
+ Status = MmCopyFromCaller(&SpecifiedDestRect, lprc,
sizeof(RECT));
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastWin32Error(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ IntLPtoDP(dc, (POINT *) &SpecifiedDestRect, 2);
+ }
+
if (NULL != UnsafeDx && Count > 0)
{
Dx = ExAllocatePoolWithTag(PagedPool, Count * sizeof(INT),
TAG_GDITEXT);
- Detect end of chain
- Correct copy/paste error
Fixes bug 1212
Modified: trunk/reactos/lib/crt/except/seh.s
_____
Modified: trunk/reactos/lib/crt/except/seh.s
--- trunk/reactos/lib/crt/except/seh.s 2005-12-30 18:19:24 UTC (rev
20459)
+++ trunk/reactos/lib/crt/except/seh.s 2005-12-30 18:35:49 UTC (rev
20460)
@@ -99,8 +99,10 @@
// If we have reached the end of the chain or we're asked to stop
here
// by the caller then exit
+ test %ebx, %ebx
+ je .lu2_done
+
movl ER_TRYLEVEL(%ebx), %eax
-
cmpl $-1, %eax
je .lu2_done
@@ -288,7 +290,6 @@
// Perform local unwinding
.eh3_unwind:
- movl $ExceptionContinueSearch, %eax
testl $EXCEPTION_TARGET_UNWIND, EREC_FLAGS(%eax)
jnz .eh3_return