Module: wine Branch: master Commit: b47debddf533db275d19dbad9b230a283cef1cd8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b47debddf533db275d19dbad9b...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Nov 3 20:18:59 2011 +0100
gdi32: Return the original brush data in GetObject.
---
dlls/gdi32/brush.c | 5 ++--- dlls/gdi32/tests/brush.c | 16 ++++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/dlls/gdi32/brush.c b/dlls/gdi32/brush.c index 19372d1..5cbae61 100644 --- a/dlls/gdi32/brush.c +++ b/dlls/gdi32/brush.c @@ -161,7 +161,6 @@ HBRUSH WINAPI CreateBrushIndirect( const LOGBRUSH * brush ) case BS_PATTERN: ptr->bitmap = BITMAP_CopyBitmap( (HBITMAP)ptr->logbrush.lbHatch ); if (!ptr->bitmap) goto error; - ptr->logbrush.lbHatch = (ULONG_PTR)ptr->bitmap; ptr->logbrush.lbColor = 0; break;
@@ -176,7 +175,7 @@ HBRUSH WINAPI CreateBrushIndirect( const LOGBRUSH * brush ) if (!ptr->info) goto error; ptr->bits.ptr = (char *)ptr->info + bitmap_info_size( ptr->info, ptr->usage ); ptr->logbrush.lbStyle = BS_DIBPATTERN; - ptr->logbrush.lbHatch = (ULONG_PTR)ptr->info; + ptr->logbrush.lbColor = 0; break;
case BS_DIBPATTERN8X8: @@ -446,7 +445,7 @@ static HGDIOBJ BRUSH_SelectObject( HGDIOBJ handle, HDC hdc ) if(pattern_dev == dc->dibdrv) pattern_dev = GET_NEXT_PHYSDEV( physdev, pSelectBrush );
- BITMAP_SetOwnerDC( (HBITMAP)brush->logbrush.lbHatch, pattern_dev ); + BITMAP_SetOwnerDC( bitmap, pattern_dev ); }
info = brush->info; diff --git a/dlls/gdi32/tests/brush.c b/dlls/gdi32/tests/brush.c index a02209f..f0ef2df 100644 --- a/dlls/gdi32/tests/brush.c +++ b/dlls/gdi32/tests/brush.c @@ -100,7 +100,7 @@ static void test_pattern_brush(void) ok( ret == sizeof(br), "wrong size %u\n", ret ); ok( br.lbStyle == BS_PATTERN, "wrong style %u\n", br.lbStyle ); ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); - todo_wine ok( (HBITMAP)br.lbHatch == bitmap, "wrong handle %p/%p\n", (HBITMAP)br.lbHatch, bitmap ); + ok( (HBITMAP)br.lbHatch == bitmap, "wrong handle %p/%p\n", (HBITMAP)br.lbHatch, bitmap ); DeleteObject( brush );
br.lbStyle = BS_PATTERN8X8; @@ -113,7 +113,7 @@ static void test_pattern_brush(void) ok( ret == sizeof(br), "wrong size %u\n", ret ); ok( br.lbStyle == BS_PATTERN, "wrong style %u\n", br.lbStyle ); ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); - todo_wine ok( (HBITMAP)br.lbHatch == bitmap, "wrong handle %p/%p\n", (HBITMAP)br.lbHatch, bitmap ); + ok( (HBITMAP)br.lbHatch == bitmap, "wrong handle %p/%p\n", (HBITMAP)br.lbHatch, bitmap ); ret = GetObjectW( bitmap, sizeof(dib), &dib ); ok( ret == sizeof(dib.dsBm), "wrong size %u\n", ret ); DeleteObject( bitmap ); @@ -139,7 +139,7 @@ static void test_pattern_brush(void) ok( ret == sizeof(br), "wrong size %u\n", ret ); ok( br.lbStyle == BS_PATTERN, "wrong style %u\n", br.lbStyle ); ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); - todo_wine ok( (HBITMAP)br.lbHatch == bitmap, "wrong handle %p/%p\n", (HBITMAP)br.lbHatch, bitmap ); + ok( (HBITMAP)br.lbHatch == bitmap, "wrong handle %p/%p\n", (HBITMAP)br.lbHatch, bitmap ); ret = GetObjectW( bitmap, sizeof(dib), &dib ); ok( ret == sizeof(dib), "wrong size %u\n", ret ); DeleteObject( brush ); @@ -152,7 +152,7 @@ static void test_pattern_brush(void) ok( ret == sizeof(br), "wrong size %u\n", ret ); ok( br.lbStyle == BS_DIBPATTERN, "wrong style %u\n", br.lbStyle ); ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); - todo_wine ok( (BITMAPINFO *)br.lbHatch == info || broken(!br.lbHatch), /* nt4 */ + ok( (BITMAPINFO *)br.lbHatch == info || broken(!br.lbHatch), /* nt4 */ "wrong handle %p/%p\n", (BITMAPINFO *)br.lbHatch, info ); DeleteObject( brush );
@@ -165,8 +165,8 @@ static void test_pattern_brush(void) ret = GetObjectW( brush, sizeof(br), &br ); ok( ret == sizeof(br), "wrong size %u\n", ret ); ok( br.lbStyle == BS_DIBPATTERN, "wrong style %u\n", br.lbStyle ); - todo_wine ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); - todo_wine ok( (BITMAPINFO *)br.lbHatch == info || broken(!br.lbHatch), /* nt4 */ + ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); + ok( (BITMAPINFO *)br.lbHatch == info || broken(!br.lbHatch), /* nt4 */ "wrong handle %p/%p\n", (BITMAPINFO *)br.lbHatch, info );
mem = GlobalAlloc( GMEM_MOVEABLE, sizeof(buffer) ); @@ -181,10 +181,10 @@ static void test_pattern_brush(void) ret = GetObjectW( brush, sizeof(br), &br ); ok( ret == sizeof(br), "wrong size %u\n", ret ); ok( br.lbStyle == BS_DIBPATTERN, "wrong style %u\n", br.lbStyle ); - todo_wine ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); + ok( br.lbColor == 0, "wrong color %u\n", br.lbColor ); ok( (HGLOBAL)br.lbHatch != mem, "wrong handle %p/%p\n", (HGLOBAL)br.lbHatch, mem ); bits = GlobalLock( mem ); - todo_wine ok( (HGLOBAL)br.lbHatch == bits || broken(!br.lbHatch), /* nt4 */ + ok( (HGLOBAL)br.lbHatch == bits || broken(!br.lbHatch), /* nt4 */ "wrong handle %p/%p\n", (HGLOBAL)br.lbHatch, bits ); ret = GlobalFlags( mem ); ok( ret == 2, "wrong flags %x\n", ret );