Fix rendering artifacts in wxSplitterWindow sash

SizeWindows() optimized rendering calls to DrawSash() too aggressively
and wouldn't repaint e.g. slowly moving sash with wxSP_LIVE_UPDATE
enabled, even though child windows were repositioned.

Fix by always painting the sash from SizeWindows().
This commit is contained in:
Václav Slavík
2016-11-14 20:07:22 +01:00
parent d3497d32ec
commit fd9e71afb7

View File

@@ -656,8 +656,6 @@ void wxSplitterWindow::SetSashPositionAndNotify(int sashPos)
// including the edges next to the sash.
void wxSplitterWindow::SizeWindows()
{
int oldSashPosition = m_sashPosition;
// check if we have delayed setting the real sash position
if ( m_requestedSashPosition != INT_MAX )
{
@@ -723,11 +721,8 @@ void wxSplitterWindow::SizeWindows()
GetWindow1()->SetSize(border, border, w1, h1);
}
if ( oldSashPosition != m_sashPosition )
{
wxClientDC dc(this);
DrawSash(dc);
}
wxClientDC dc(this);
DrawSash(dc);
}
// Set pane for unsplit window