Module: wine Branch: refs/heads/master Commit: ddc60c85f6747a96c93925b2fd785d1419f17dee URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=ddc60c85f6747a96c93925b2...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Mar 20 16:00:34 2006 +0100
x11drv: Clear new bitmaps if they don't contain any data.
---
dlls/gdi/tests/gdiobj.c | 2 -- dlls/x11drv/bitmap.c | 11 +++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi/tests/gdiobj.c b/dlls/gdi/tests/gdiobj.c index ec4d2d4..4de266c 100644 --- a/dlls/gdi/tests/gdiobj.c +++ b/dlls/gdi/tests/gdiobj.c @@ -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); diff --git a/dlls/x11drv/bitmap.c b/dlls/x11drv/bitmap.c index b2e7718..060102f 100644 --- a/dlls/x11drv/bitmap.c +++ b/dlls/x11drv/bitmap.c @@ -146,7 +146,18 @@ BOOL X11DRV_CreateBitmap( X11DRV_PDEVICE }
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; }