diff options
author | nyamatongwe <nyamatongwe@gmail.com> | 2013-03-13 09:32:45 +1100 |
---|---|---|
committer | nyamatongwe <nyamatongwe@gmail.com> | 2013-03-13 09:32:45 +1100 |
commit | 3ec002dcf312faa7c72220062f1941cf366e744b (patch) | |
tree | 341aa832d1839e70eb549e89652d18f8920ab41a /src/Editor.cxx | |
parent | aca495f73c79306c1b53c1ecd91a5d6e6e6ec861 (diff) | |
download | scintilla-mirror-3ec002dcf312faa7c72220062f1941cf366e744b.tar.gz |
Handle test and reset of needUpdateUI in NotifyUpdateUI so less chance of desync.
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index 8ad36ef33..5ce531787 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -3467,10 +3467,7 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) { int yposScreen = screenLinePaintFirst * vs.lineHeight; bool paintAbandonedByStyling = paintState == paintAbandoned; - if (needUpdateUI) { - NotifyUpdateUI(); - needUpdateUI = 0; - + if (NotifyUpdateUI()) { RefreshStyleData(); RefreshPixMaps(surfaceWindow); } @@ -4427,11 +4424,16 @@ void Editor::NotifyHotSpotReleaseClick(int position, bool shift, bool ctrl, bool NotifyParent(scn); } -void Editor::NotifyUpdateUI() { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_UPDATEUI; - scn.updated = needUpdateUI; - NotifyParent(scn); +bool Editor::NotifyUpdateUI() { + if (needUpdateUI) { + SCNotification scn = {0}; + scn.nmhdr.code = SCN_UPDATEUI; + scn.updated = needUpdateUI; + NotifyParent(scn); + needUpdateUI = 0; + return true; + } + return false; } void Editor::NotifyPainted() { @@ -6719,10 +6721,7 @@ void Editor::IdleStyling() { // line of the modification to heal instead of propagating to the rest of the window. StyleToPositionInView(pdoc->LineStart(pdoc->LineFromPosition(styleNeeded.upTo) + 2)); - if (needUpdateUI) { - NotifyUpdateUI(); - needUpdateUI = 0; - } + NotifyUpdateUI(); styleNeeded.Reset(); } |