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:
@@ -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 );
|
||||||
|
Reference in New Issue
Block a user