From 8a8e0aaae0bc84f57392114200d3d2c8392835b2 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 7 Oct 2008 22:57:50 +0000 Subject: [PATCH] Fix FLOATOBJ_IsLong. Fix MapMode MM_ISOTROPIC. This fixes the clock in timedate.cpl. svn path=/trunk/; revision=36685 --- reactos/subsystems/win32/win32k/include/floatobj.h | 1 + reactos/subsystems/win32/win32k/objects/coord.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/reactos/subsystems/win32/win32k/include/floatobj.h b/reactos/subsystems/win32/win32k/include/floatobj.h index 631ec8f0cdc..3d57fb7f9b9 100644 --- a/reactos/subsystems/win32/win32k/include/floatobj.h +++ b/reactos/subsystems/win32/win32k/include/floatobj.h @@ -35,6 +35,7 @@ _FLOATOBJ_IsLong(FLOATOBJ *pf) { EFLOAT_S *pef = (EFLOAT_S*)pf; ULONG Shift = 32 - pef->lExp; + if (Shift > 31) return FALSE; return (((pef->lMant >> Shift) << Shift) == pef->lMant); } diff --git a/reactos/subsystems/win32/win32k/objects/coord.c b/reactos/subsystems/win32/win32k/objects/coord.c index fc7595aa88a..2940ca1ee56 100644 --- a/reactos/subsystems/win32/win32k/objects/coord.c +++ b/reactos/subsystems/win32/win32k/objects/coord.c @@ -672,8 +672,14 @@ IntGdiSetMapMode(PDC dc, INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID); break; - case MM_LOMETRIC: case MM_ISOTROPIC: + Dc_Attr->szlWindowExt.cx = 3600; + Dc_Attr->szlWindowExt.cy = 2700; + Dc_Attr->szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes; + Dc_Attr->szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes; + break; + + case MM_LOMETRIC: Dc_Attr->szlWindowExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize * 10; Dc_Attr->szlWindowExt.cy = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize * 10; Dc_Attr->szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;