diff options
author | nyamatongwe <unknown> | 2012-09-05 08:40:49 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2012-09-05 08:40:49 +1000 |
commit | 98b6dd14e99ce96c60965bc23cc69e1db77f06f1 (patch) | |
tree | 048ef031a2b0d1dc27a7162a1fa8ffac470a59a5 | |
parent | 4ad8875e7e798bc679a6835e309db717a693941a (diff) | |
download | scintilla-mirror-98b6dd14e99ce96c60965bc23cc69e1db77f06f1.tar.gz |
Fix crashes on Ubuntu with GTK+3 where scroll bar changes invalidate the
drawing surface.
-rw-r--r-- | gtk/ScintillaGTK.cxx | 4 | ||||
-rw-r--r-- | src/Editor.cxx | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index be007e775..8a09b105b 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -1213,6 +1213,10 @@ bool ScintillaGTK::ModifyScrollBars(int nMax, int nPage) { modified = true; } #endif + if (modified && (paintState == painting)) { + paintState = paintAbandoned; + } + return modified; } diff --git a/src/Editor.cxx b/src/Editor.cxx index fea5a2336..2b2b1785d 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -3438,6 +3438,8 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) { AllocateGraphics(); RefreshStyleData(); + if (paintState == paintAbandoned) + return; // Scroll bars may have changed so need redraw RefreshPixMaps(surfaceWindow); StyleToPositionInView(PositionAfterArea(rcArea)); |