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.
This commit is contained in:
Artur Wieczorek
2019-08-30 00:02:28 +02:00
parent 8403b79ad7
commit 9404dc2f9a

View File

@@ -605,12 +605,15 @@ void wxToolBarTool::UpdateImages()
int h = m_bmpNormal.GetScaledHeight(); int h = m_bmpNormal.GetScaledHeight();
m_alternateBitmap = wxBitmap(); m_alternateBitmap = wxBitmap();
m_alternateBitmap.CreateScaled(w, h, -1, m_bmpNormal.GetScaleFactor()); m_alternateBitmap.CreateScaled(w, h, -1, m_bmpNormal.GetScaleFactor());
m_alternateBitmap.UseAlpha();
wxMemoryDC dc; wxMemoryDC dc;
dc.SelectObject(m_alternateBitmap); dc.SelectObject(m_alternateBitmap);
// This color corresponds to OS X Yosemite's rendering of selected toolbar items // This color corresponds to OS X Yosemite's rendering of selected toolbar items
// See also https://trac.wxwidgets.org/ticket/16645 // See also https://trac.wxwidgets.org/ticket/16645
wxColour grey(0xB9, 0xB9, 0xB9); wxColour grey(0xB9, 0xB9, 0xB9);
dc.SetBackground(*wxTRANSPARENT_BRUSH);
dc.Clear();
dc.SetPen(grey); dc.SetPen(grey);
dc.SetBrush(grey); dc.SetBrush(grey);
dc.DrawRoundedRectangle( 0, 0, w, h, 3 ); dc.DrawRoundedRectangle( 0, 0, w, h, 3 );