diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2018-07-18 12:57:34 +0300 |
---|---|---|
committer | Vlad Mihaylenko <vxmihaylenko@gmail.com> | 2018-07-20 14:51:41 +0300 |
commit | 985a07f1b56924a79a6c8f24a38b58695b20a65e (patch) | |
tree | a5bec91a7fd49850ac80096137f8b810cf0ee588 /drape_frontend | |
parent | 743f9990a8fd981b96710de3eb4cc51800e656f7 (diff) |
Fixed updating maps style
Diffstat (limited to 'drape_frontend')
-rw-r--r-- | drape_frontend/backend_renderer.cpp | 8 | ||||
-rw-r--r-- | drape_frontend/backend_renderer.hpp | 2 | ||||
-rw-r--r-- | drape_frontend/drape_engine.cpp | 14 | ||||
-rw-r--r-- | drape_frontend/message_subclasses.hpp | 6 |
4 files changed, 12 insertions, 18 deletions
diff --git a/drape_frontend/backend_renderer.cpp b/drape_frontend/backend_renderer.cpp index 9d4fa7b89b..ac4e252e03 100644 --- a/drape_frontend/backend_renderer.cpp +++ b/drape_frontend/backend_renderer.cpp @@ -148,8 +148,8 @@ void BackendRenderer::AcceptMessage(ref_ptr<Message> message) case Message::GuiRecache: { ref_ptr<GuiRecacheMessage> msg = message; - RecacheGui(msg->GetInitInfo(), msg->NeedResetOldGui()); - + m_lastWidgetsInfo = msg->GetInitInfo(); + RecacheGui(m_lastWidgetsInfo, msg->NeedResetOldGui()); #ifdef RENDER_DEBUG_INFO_LABELS RecacheDebugLabels(); #endif @@ -335,6 +335,10 @@ void BackendRenderer::AcceptMessage(ref_ptr<Message> message) { m_texMng->OnSwitchMapStyle(); RecacheMapShapes(); + RecacheGui(m_lastWidgetsInfo, false /* needResetOldGui */); +#ifdef RENDER_DEBUG_INFO_LABELS + RecacheDebugLabels(); +#endif m_trafficGenerator->InvalidateTexturesCache(); m_transitBuilder->RebuildSchemes(m_texMng); break; diff --git a/drape_frontend/backend_renderer.hpp b/drape_frontend/backend_renderer.hpp index 09f227cffe..83fd6ce54d 100644 --- a/drape_frontend/backend_renderer.hpp +++ b/drape_frontend/backend_renderer.hpp @@ -124,6 +124,8 @@ private: drape_ptr<MetalineManager> m_metalineManager; + gui::TWidgetsInitInfo m_lastWidgetsInfo; + #ifdef DEBUG bool m_isTeardowned; #endif diff --git a/drape_frontend/drape_engine.cpp b/drape_frontend/drape_engine.cpp index b35d23d466..ef77fa6c56 100644 --- a/drape_frontend/drape_engine.cpp +++ b/drape_frontend/drape_engine.cpp @@ -369,17 +369,9 @@ void DrapeEngine::InvalidateRect(m2::RectD const & rect) void DrapeEngine::UpdateMapStyle() { - // Update map style. - { - UpdateMapStyleMessage::Blocker blocker; - m_threadCommutator->PostMessage(ThreadsCommutator::RenderThread, - make_unique_dp<UpdateMapStyleMessage>(blocker), - MessagePriority::High); - blocker.Wait(); - } - - // Recache gui after updating of style. - RecacheGui(false); + m_threadCommutator->PostMessage(ThreadsCommutator::RenderThread, + make_unique_dp<UpdateMapStyleMessage>(), + MessagePriority::High); } void DrapeEngine::RecacheMapShapes() diff --git a/drape_frontend/message_subclasses.hpp b/drape_frontend/message_subclasses.hpp index 9217759712..f270bc9238 100644 --- a/drape_frontend/message_subclasses.hpp +++ b/drape_frontend/message_subclasses.hpp @@ -673,13 +673,9 @@ private: bool m_isVisible; }; -class UpdateMapStyleMessage : public BaseBlockingMessage +class UpdateMapStyleMessage : public Message { public: - UpdateMapStyleMessage(Blocker & blocker) - : BaseBlockingMessage(blocker) - {} - Type GetType() const override { return Message::UpdateMapStyle; } }; |