Do nothing in wxListCtrl::SetDoubleBuffered() in wxMSW
Setting WS_EX_COMPOSITED, as the base class version does, just results in visual artefacts and is useless, as we turn on LVS_EX_DOUBLEBUFFER already, if it's supported, anyhow. So don't break the display if people call SetDoubleBuffered() in the mistaken belief that it does something useful in this case.
This commit is contained in:
@@ -360,6 +360,11 @@ public:
|
|||||||
// Necessary for drawing hrules and vrules, if specified
|
// Necessary for drawing hrules and vrules, if specified
|
||||||
void OnPaint(wxPaintEvent& event);
|
void OnPaint(wxPaintEvent& event);
|
||||||
|
|
||||||
|
// Override SetDoubleBuffered() to do nothing, its implementation in the
|
||||||
|
// base class is incompatible with the double buffering done by this native
|
||||||
|
// control.
|
||||||
|
virtual bool IsDoubleBuffered() const;
|
||||||
|
virtual void SetDoubleBuffered(bool on);
|
||||||
|
|
||||||
virtual bool ShouldInheritColours() const wxOVERRIDE { return false; }
|
virtual bool ShouldInheritColours() const wxOVERRIDE { return false; }
|
||||||
|
|
||||||
|
@@ -466,6 +466,17 @@ void wxListCtrl::OnDPIChanged(wxDPIChangedEvent &event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxListCtrl::IsDoubleBuffered() const
|
||||||
|
{
|
||||||
|
// LVS_EX_DOUBLEBUFFER is turned on for comctl32 v6+.
|
||||||
|
return wxApp::GetComCtl32Version() >= 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxListCtrl::SetDoubleBuffered(bool WXUNUSED(on))
|
||||||
|
{
|
||||||
|
// Nothing to do, it's always enabled if supported.
|
||||||
|
}
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_3_0
|
#if WXWIN_COMPATIBILITY_3_0
|
||||||
// Deprecated
|
// Deprecated
|
||||||
void wxListCtrl::UpdateStyle()
|
void wxListCtrl::UpdateStyle()
|
||||||
|
Reference in New Issue
Block a user