From 9f6689d44770e6384a645a7be520bf7d8a9de2b6 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Wed, 5 Sep 2012 08:40:49 +1000 Subject: Fix crashes on Ubuntu with GTK+3 where scroll bar changes invalidate the drawing surface. --- gtk/ScintillaGTK.cxx | 4 ++++ src/Editor.cxx | 2 ++ 2 files changed, 6 insertions(+) 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)); -- cgit v1.2.3