From fe47f618130a18c291d1c83d0096a63d47b1ea18 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 4 Nov 2005 19:22:35 +0000 Subject: [PATCH] fixed bug in blit with monochrome mask svn: r1233 --- src/wxwindow/src/msw/wx_dc.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/wxwindow/src/msw/wx_dc.cxx b/src/wxwindow/src/msw/wx_dc.cxx index 10730026df..440ee0da3f 100644 --- a/src/wxwindow/src/msw/wx_dc.cxx +++ b/src/wxwindow/src/msw/wx_dc.cxx @@ -2504,6 +2504,7 @@ Bool wxDC::Blit(double xdest, double ydest, double width, double height, use_alpha = 1; } } else { + wxBitmap *orig_mask = mask; invented = new wxBitmap(iw, ih, mono_src); if (invented->Ok()) { GC_CAN_IGNORE void *pBits = NULL; /* set with use_alpha... */ @@ -2613,13 +2614,13 @@ Bool wxDC::Blit(double xdest, double ydest, double width, double height, return 0; } - if ((mask != selected_bitmap) + if ((orig_mask != selected_bitmap) && (source != selected_bitmap)) { - mask->ReleaseCachedMask(); + orig_mask->ReleaseCachedMask(); source->ReleaseCachedMask(); - mask->mask_cache = invented_memdc; + orig_mask->mask_cache = invented_memdc; source->mask_cache = invented_memdc; - if (source == mask) + if (source == orig_mask) invented_memdc->refcount = 1; else invented_memdc->refcount = 2;