diff --git a/reactos/subsystems/win32/win32k/objects/brush.c b/reactos/subsystems/win32/win32k/objects/brush.c index 123f5eb58e3..14247c7cd0f 100644 --- a/reactos/subsystems/win32/win32k/objects/brush.c +++ b/reactos/subsystems/win32/win32k/objects/brush.c @@ -173,11 +173,25 @@ IntGdiInitBrushInstance(GDIBRUSHINST *BrushInst, PGDIBRUSHOBJ BrushObj, XLATEOBJ ASSERT(BrushInst); ASSERT(BrushObj); if (BrushObj->flAttrs & GDIBRUSH_IS_NULL) + { BrushInst->BrushObject.iSolidColor = 0; + } else if (BrushObj->flAttrs & GDIBRUSH_IS_SOLID) - BrushInst->BrushObject.iSolidColor = XLATEOBJ_iXlate(XlateObj, BrushObj->BrushAttr.lbColor); + { + if (XlateObj) + { + BrushInst->BrushObject.iSolidColor = XLATEOBJ_iXlate(XlateObj, BrushObj->BrushAttr.lbColor); + } + else + { + BrushInst->BrushObject.iSolidColor = 0xFFFFFFFF; + } + } else + { BrushInst->BrushObject.iSolidColor = 0xFFFFFFFF; + } + BrushInst->BrushObject.pvRbrush = BrushObj->ulRealization; BrushInst->BrushObject.flColorType = 0; BrushInst->GdiBrushObject = BrushObj;