Huw Davies : gdi32: Make sure that pattern brush bitmap' s are created with the correct physdev.

Alexandre Julliard julliard at winehq.org
Mon Apr 18 11:10:59 CDT 2011


Module: wine
Branch: master
Commit: 94fbcd7ce286ee7c88d1a2ee0e02b9f1e7a4f4d2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=94fbcd7ce286ee7c88d1a2ee0e02b9f1e7a4f4d2

Author: Huw Davies <huw at codeweavers.com>
Date:   Mon Apr 18 11:23:27 2011 +0100

gdi32: Make sure that pattern brush bitmap's are created with the correct physdev.

---

 dlls/gdi32/brush.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/dlls/gdi32/brush.c b/dlls/gdi32/brush.c
index a1d22fc..781e446 100644
--- a/dlls/gdi32/brush.c
+++ b/dlls/gdi32/brush.c
@@ -390,7 +390,15 @@ static HGDIOBJ BRUSH_SelectObject( HGDIOBJ handle, HDC hdc )
         PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSelectBrush );
 
         if (brush->logbrush.lbStyle == BS_PATTERN)
-            BITMAP_SetOwnerDC( (HBITMAP)brush->logbrush.lbHatch, physdev );
+        {
+            PHYSDEV pattern_dev = physdev;
+            /* FIXME: This will go away once the dib driver implements
+               pattern brushes */
+            if(pattern_dev == &dc->dibdrv.dev)
+                pattern_dev = GET_NEXT_PHYSDEV( physdev, pSelectBrush );
+
+            BITMAP_SetOwnerDC( (HBITMAP)brush->logbrush.lbHatch, pattern_dev );
+        }
 
         GDI_inc_ref_count( handle );
         GDI_ReleaseObj( handle );




More information about the wine-cvs mailing list