]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/bmpbuttn.cpp
fixing memory leaks on three levels (bug report 1905138)
[wxWidgets.git] / src / mac / carbon / bmpbuttn.cpp
index aae979a8620fbad6519987b5c51791098e932f82..5757f50b845b2d53d27771ddaa4418e4039af97d 100644 (file)
@@ -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