aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 016ef3383..9c4ad2d4f 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -1752,7 +1752,13 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) {
}
RefreshPixMaps(surfaceWindow); // In case pixmaps invalidated by scrollbar change
}
- PLATFORM_ASSERT(marginView.pixmapSelPattern->Initialised());
+
+ if (!marginView.pixmapSelPattern->Initialised()) {
+ // When Direct2D is used, pixmap creation may fail with D2DERR_RECREATE_TARGET so
+ // abandon this paint to avoid further failures.
+ // Main drawing surface and pixmaps should be recreated by next paint.
+ return;
+ }
if (!view.bufferedDraw)
surfaceWindow->SetClip(rcArea);