Use Refresh when the initial paint was abandoned by Scintilla so it will trigger a repaint of the whole window. This is done for things like style changes, word wrapping or brace highlights where more than the current line is affected. Fixes #14653.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2012-09-30 02:33:56 +00:00
parent 241708ca47
commit 337c5edd43

View File

@@ -748,8 +748,16 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
if (paintState == paintAbandoned) {
// Painting area was insufficient to cover new styling or brace
// highlight positions
// highlight positions. So trigger a new paint event that will
// repaint the whole window.
stc->Refresh(false);
#if defined(__WXOSX__)
// On Mac we also need to finish the current paint to make sure that
// everything is on the screen that needs to be there between now and
// when the next paint event arrives.
FullPaintDC(dc);
#endif
}
paintState = notPainting;
}
@@ -757,8 +765,8 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
// Force the whole window to be repainted
void ScintillaWX::FullPaint() {
wxClientDC dc(stc);
FullPaintDC(&dc);
stc->Refresh(false);
stc->Update();
}