diff --git a/win32ss/gdi/eng/engbrush.c b/win32ss/gdi/eng/engbrush.c index f57bc4778e..3c8ec26dbe 100644 --- a/win32ss/gdi/eng/engbrush.c +++ b/win32ss/gdi/eng/engbrush.c @@ -393,6 +393,14 @@ EBRUSHOBJ_bRealizeBrush(EBRUSHOBJ *pebo, BOOL bCallDriver) pebo->crCurrentBack, pebo->crCurrentText); + /* If we have a Cross-Hatch pattern with Monochrome translation table, correct second color */ + if ((iHatch == 5) && (exlo.xlo.cEntries == 2)) + { + /* Swap BGR to RGB here */ + exlo.xlo.pulXlate[1] = ((exlo.xlo.pulXlate[1] & 0xFF0000) >> 16) | + ((exlo.xlo.pulXlate[1] & 0xFF) << 16) | ((exlo.xlo.pulXlate[1] & 0xFF00)); + } + /* Create the realization */ bResult = pfnRealizeBrush(&pebo->BrushObject, &pebo->psurfTrg->SurfObj,