From 3d5e84b2291156f63d0a2b1fb4e6c13bba458223 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Fri, 22 Sep 2017 09:29:41 +0200 Subject: [PATCH] Update transparency flag for wxBitmap created from wxIcon Just created wxBitmap has "hasAlpha" flag set to false so it needs to be modified if source wxIcon contains transparency values. Closes #17953. --- src/osx/core/bitmap.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/osx/core/bitmap.cpp b/src/osx/core/bitmap.cpp index 5134e97553..c3c35ba980 100644 --- a/src/osx/core/bitmap.cpp +++ b/src/osx/core/bitmap.cpp @@ -834,20 +834,22 @@ wxBitmapRefData::~wxBitmapRefData() bool wxBitmap::CopyFromIcon(const wxIcon& icon) { - bool created = false ; int w = icon.GetWidth() ; int h = icon.GetHeight() ; - Create( w , h ) ; - if ( !created ) + if ( Create( w, h ) ) { wxMemoryDC dc ; dc.SelectObject( *this ) ; dc.DrawIcon( icon , 0 , 0 ) ; dc.SelectObject( wxNullBitmap ) ; + + // Assume 32 bpp icon has transparency values + UseAlpha(icon.GetDepth() == 32); + return true; } - return true; + return false; } wxBitmap::wxBitmap(const char bits[], int the_width, int the_height, int no_bits)