diff --git a/dlls/gdi32/dibdrv/objects.c b/dlls/gdi32/dibdrv/objects.c index a0e238eeb70..52aab44f386 100644 --- a/dlls/gdi32/dibdrv/objects.c +++ b/dlls/gdi32/dibdrv/objects.c @@ -958,6 +958,7 @@ static BOOL solid_brush(dibdrv_physdev *pdev, int num, RECT *rects) void update_brush_rop( dibdrv_physdev *pdev, INT rop ) { + pdev->brush_rop = rop; if(pdev->brush_style == BS_SOLID) calc_and_xor_masks(rop, pdev->brush_color, &pdev->brush_and, &pdev->brush_xor); } diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h index 7b4c58539d3..9cb528c3198 100644 --- a/dlls/gdi32/gdi_private.h +++ b/dlls/gdi32/gdi_private.h @@ -122,6 +122,7 @@ typedef struct dibdrv_physdev /* brush */ UINT brush_style; + INT brush_rop; /* PatBlt, for example, can override the DC's rop2 */ DWORD brush_color, brush_and, brush_xor; BOOL (* brush_rects)(struct dibdrv_physdev *pdev, int num, RECT *rects);