diff --git a/src/drawing/engines/OpenGLDrawingEngine.cpp b/src/drawing/engines/OpenGLDrawingEngine.cpp index a430de5d78..b54503a00b 100644 --- a/src/drawing/engines/OpenGLDrawingEngine.cpp +++ b/src/drawing/engines/OpenGLDrawingEngine.cpp @@ -175,7 +175,6 @@ public: glTranslatef(-1.0f, -1.0f, 0); glScalef(2.0f / _width, 2.0f / _height, 0); - gfx_redraw_screen_rect(0, 0, _width - 1, _height - 1); window_update_all_viewports(); gfx_redraw_screen_rect(0, 0, _width - 1, _height - 1); window_update_all(); diff --git a/src/drawing/engines/SoftwareDrawingEngine.cpp b/src/drawing/engines/SoftwareDrawingEngine.cpp index 7ac63c9e2f..74a34fdc39 100644 --- a/src/drawing/engines/SoftwareDrawingEngine.cpp +++ b/src/drawing/engines/SoftwareDrawingEngine.cpp @@ -293,7 +293,10 @@ public: _rainDrawer.SetDPI(&_bitsDPI); _rainDrawer.Restore(); + // Redraw dirty regions before updating the viewports, otherwise + // when viewports get panned, they copy dirty pixels DrawAllDirtyBlocks(); + window_update_all_viewports(); DrawAllDirtyBlocks(); window_update_all();