diff --git a/reactos/dll/win32/gdi32/objects/dc.c b/reactos/dll/win32/gdi32/objects/dc.c index 38563579b7e..610a31b08e9 100644 --- a/reactos/dll/win32/gdi32/objects/dc.c +++ b/reactos/dll/win32/gdi32/objects/dc.c @@ -1275,8 +1275,13 @@ SetMapMode( return 0; } #endif - if ((Mode == Dc_Attr->iMapMode) && (Mode != MM_ISOTROPIC)) return Mode; - return GetAndSetDCDWord( hdc, GdiGetSetMapMode, Mode, 0, 0, 0 ); + // Force change if Isotropic is set for recompute. + if ((Mode != Dc_Attr->iMapMode) || (Mode == MM_ISOTROPIC)) + { + Dc_Attr->ulDirty_ &= ~SLOW_WIDTHS; + return GetAndSetDCDWord( hdc, GdiGetSetMapMode, Mode, 0, 0, 0 ); + } + return Dc_Attr->iMapMode; } /* diff --git a/reactos/subsystems/win32/win32k/objects/coord.c b/reactos/subsystems/win32/win32k/objects/coord.c index 305c0737d67..1c0d53f43eb 100644 --- a/reactos/subsystems/win32/win32k/objects/coord.c +++ b/reactos/subsystems/win32/win32k/objects/coord.c @@ -657,12 +657,10 @@ IntGdiSetMapMode(PDC dc, PrevMapMode = Dc_Attr->iMapMode; - if (MapMode != Dc_Attr->iMapMode || (MapMode != MM_ISOTROPIC && MapMode != MM_ANISOTROPIC)) - { - Dc_Attr->iMapMode = MapMode; + Dc_Attr->iMapMode = MapMode; - switch (MapMode) - { + switch (MapMode) + { case MM_TEXT: Dc_Attr->szlWindowExt.cx = 1; Dc_Attr->szlWindowExt.cy = 1; @@ -717,7 +715,6 @@ IntGdiSetMapMode(PDC dc, default: Dc_Attr->iMapMode = PrevMapMode; PrevMapMode = 0; - } DC_UpdateXforms(dc); }