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:
@@ -748,8 +748,16 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
|
|||||||
|
|
||||||
if (paintState == paintAbandoned) {
|
if (paintState == paintAbandoned) {
|
||||||
// Painting area was insufficient to cover new styling or brace
|
// 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);
|
FullPaintDC(dc);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
paintState = notPainting;
|
paintState = notPainting;
|
||||||
}
|
}
|
||||||
@@ -757,8 +765,8 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
|
|||||||
|
|
||||||
// Force the whole window to be repainted
|
// Force the whole window to be repainted
|
||||||
void ScintillaWX::FullPaint() {
|
void ScintillaWX::FullPaint() {
|
||||||
wxClientDC dc(stc);
|
stc->Refresh(false);
|
||||||
FullPaintDC(&dc);
|
stc->Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user