x11drv: Clear new bitmaps if they don't contain any data.
This commit is contained in:
parent
5c1b27a029
commit
ddc60c85f6
|
@ -1034,9 +1034,7 @@ static void test_bitmap(void)
|
|||
memset(buf, 0xAA, sizeof(buf));
|
||||
ret = GetBitmapBits(hbmp, sizeof(buf), buf);
|
||||
ok(ret == bm.bmWidthBytes * bm.bmHeight, "%d != %d\n", ret, bm.bmWidthBytes * bm.bmHeight);
|
||||
todo_wine {
|
||||
ok(!memcmp(buf, buf_cmp, sizeof(buf)), "buffers do not match\n");
|
||||
}
|
||||
|
||||
hbmp_old = SelectObject(hdc, hbmp_old);
|
||||
ok(hbmp_old == hbmp, "wrong old bitmap %p\n", hbmp_old);
|
||||
|
|
|
@ -146,7 +146,18 @@ BOOL X11DRV_CreateBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap )
|
|||
}
|
||||
|
||||
if (bitmap.bmBits) /* Set bitmap bits */
|
||||
{
|
||||
X11DRV_SetBitmapBits( hbitmap, bitmap.bmBits, bitmap.bmHeight * bitmap.bmWidthBytes );
|
||||
}
|
||||
else /* else clear the bitmap */
|
||||
{
|
||||
wine_tsx11_lock();
|
||||
XSetFunction( gdi_display, BITMAP_GC(physBitmap), GXclear );
|
||||
XFillRectangle( gdi_display, physBitmap->pixmap, BITMAP_GC(physBitmap), 0, 0,
|
||||
bitmap.bmWidth, bitmap.bmHeight );
|
||||
XSetFunction( gdi_display, BITMAP_GC(physBitmap), GXcopy );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue