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:
@@ -656,8 +656,6 @@ void wxSplitterWindow::SetSashPositionAndNotify(int sashPos)
|
|||||||
// including the edges next to the sash.
|
// including the edges next to the sash.
|
||||||
void wxSplitterWindow::SizeWindows()
|
void wxSplitterWindow::SizeWindows()
|
||||||
{
|
{
|
||||||
int oldSashPosition = m_sashPosition;
|
|
||||||
|
|
||||||
// check if we have delayed setting the real sash position
|
// check if we have delayed setting the real sash position
|
||||||
if ( m_requestedSashPosition != INT_MAX )
|
if ( m_requestedSashPosition != INT_MAX )
|
||||||
{
|
{
|
||||||
@@ -723,11 +721,8 @@ void wxSplitterWindow::SizeWindows()
|
|||||||
GetWindow1()->SetSize(border, border, w1, h1);
|
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
|
// Set pane for unsplit window
|
||||||
|
Reference in New Issue
Block a user