From 9404dc2f9a0ae6e451fa55852a84b64bb85d4eba Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Fri, 30 Aug 2019 00:02:28 +0200 Subject: [PATCH] Fix creating alternate bitmap for toggle wxToolBar button We need to fill entire area of the alternate button to the transparent colour prior to drawing non-transparent grey background. Closes #18468. --- src/osx/cocoa/toolbar.mm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/osx/cocoa/toolbar.mm b/src/osx/cocoa/toolbar.mm index 25cc3aa2a1..a0bb728b03 100644 --- a/src/osx/cocoa/toolbar.mm +++ b/src/osx/cocoa/toolbar.mm @@ -605,12 +605,15 @@ void wxToolBarTool::UpdateImages() int h = m_bmpNormal.GetScaledHeight(); m_alternateBitmap = wxBitmap(); m_alternateBitmap.CreateScaled(w, h, -1, m_bmpNormal.GetScaleFactor()); + m_alternateBitmap.UseAlpha(); wxMemoryDC dc; dc.SelectObject(m_alternateBitmap); // This color corresponds to OS X Yosemite's rendering of selected toolbar items // See also https://trac.wxwidgets.org/ticket/16645 wxColour grey(0xB9, 0xB9, 0xB9); + dc.SetBackground(*wxTRANSPARENT_BRUSH); + dc.Clear(); dc.SetPen(grey); dc.SetBrush(grey); dc.DrawRoundedRectangle( 0, 0, w, h, 3 );