diff --git a/map/framework.hpp b/map/framework.hpp index 3c8d7fbadd..11228a5aa1 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -514,8 +514,8 @@ public: void Repaint() { - AddRedrawCommandSure(); m_renderQueue.SetRedrawAll(); + AddRedrawCommandSure(); Invalidate(); } diff --git a/map/render_queue_routine.cpp b/map/render_queue_routine.cpp index e1f6fe1543..cef87f33ff 100644 --- a/map/render_queue_routine.cpp +++ b/map/render_queue_routine.cpp @@ -257,6 +257,7 @@ void RenderQueueRoutine::Do() m_threadDrawer->SetVisualScale(m_visualScale); bool isPanning = false; + bool doRedrawAll = false; /// update areas in pixel coordinates. vector areas; @@ -312,6 +313,8 @@ void RenderQueueRoutine::Do() m2::RectI curRect = textureRect; + doRedrawAll = m_renderState->m_doRepaintAll; + if (m_renderState->m_doRepaintAll) { areas.clear(); @@ -364,7 +367,7 @@ void RenderQueueRoutine::Do() m_threadDrawer->screen()->setClipRect(textureRect); m_threadDrawer->clear(); - if (isPanning) + if ((isPanning) && (!doRedrawAll)) { m_threadDrawer->screen()->blit( m_renderState->m_actualTarget,