diff --git a/dlls/gdi32/dibdrv/objects.c b/dlls/gdi32/dibdrv/objects.c index 8e55d1a54f1..a36e03fc64a 100644 --- a/dlls/gdi32/dibdrv/objects.c +++ b/dlls/gdi32/dibdrv/objects.c @@ -1933,7 +1933,7 @@ static BOOL select_pattern_brush( dibdrv_physdev *pdev, dib_brush *brush, BOOL * BITMAPINFO *info = (BITMAPINFO *)buffer; RGBQUAD color_table[2]; dib_info pattern; - BOOL dither = (brush->dib.bit_count == 1); + BOOL dither = (brush->dib.bit_count == 1) || (pdev->dib.bit_count == 1); if (brush->pattern.info->bmiHeader.biClrUsed && brush->pattern.usage == DIB_PAL_COLORS) { diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c index 23d376d7738..4017845ca89 100644 --- a/dlls/gdi32/tests/dib.c +++ b/dlls/gdi32/tests/dib.c @@ -1753,7 +1753,7 @@ static void draw_graphics(HDC hdc, const BITMAPINFO *bmi, BYTE *bits) y += 25; } } - compare_hash_broken_todo(hdc, bmi, bits, "top-down 8888 dib brush patblt", 0, dib_is_1bpp); + compare_hash(hdc, bmi, bits, "top-down 8888 dib brush patblt"); SelectObject(hdc, orig_brush); DeleteObject(dib_brush);