aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <unknown>2012-09-05 08:40:49 +1000
committernyamatongwe <unknown>2012-09-05 08:40:49 +1000
commit98b6dd14e99ce96c60965bc23cc69e1db77f06f1 (patch)
tree048ef031a2b0d1dc27a7162a1fa8ffac470a59a5
parent4ad8875e7e798bc679a6835e309db717a693941a (diff)
downloadscintilla-mirror-98b6dd14e99ce96c60965bc23cc69e1db77f06f1.tar.gz
Fix crashes on Ubuntu with GTK+3 where scroll bar changes invalidate the
drawing surface.
-rw-r--r--gtk/ScintillaGTK.cxx4
-rw-r--r--src/Editor.cxx2
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));