diff --git a/docs/changes.txt b/docs/changes.txt index 5a301701e0..009aa9dd60 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -190,6 +190,7 @@ wxMac: - Fixed cursor for wxBusyCursor and wxContextHelp. - Fixed wxListCtrl to respect items' non-default fonts. - wxListCtrl::SetColumnWidth() now supports wxLIST_AUTOSIZE. +- Fixed handling of transparent background in borderless wxBitmapButton. 2.8.7 diff --git a/src/mac/carbon/bmpbuttn.cpp b/src/mac/carbon/bmpbuttn.cpp index cd5d1c5038..ee5ae0e3eb 100644 --- a/src/mac/carbon/bmpbuttn.cpp +++ b/src/mac/carbon/bmpbuttn.cpp @@ -14,6 +14,7 @@ #if wxUSE_BMPBUTTON #include "wx/bmpbuttn.h" +#include "wx/image.h" #ifndef WX_PRECOMP #include "wx/dcmemory.h" @@ -63,14 +64,12 @@ static wxBitmap wxMakeStdSizeBitmap(const wxBitmap& bitmap) wxASSERT_MSG( width <= sizeStd && height <= sizeStd, _T("bitmap shouldn't be cropped") ); - newBmp.Create(sizeStd, sizeStd); - wxMemoryDC dcMem; - dcMem.SelectObject(newBmp); - dcMem.Clear(); - - dcMem.DrawBitmap(bitmap, - (sizeStd - width)/2, (sizeStd-height)/2, - true); + wxImage square_image = bitmap.ConvertToImage(); + newBmp = square_image.Size + ( + wxSize(sizeStd, sizeStd), + wxPoint((sizeStd - width)/2, (sizeStd-height)/2) + ); } } //else: let the system rescale the bitmap