Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2018-07-18 12:57:34 +0300
committerVlad Mihaylenko <vxmihaylenko@gmail.com>2018-07-20 14:51:41 +0300
commit985a07f1b56924a79a6c8f24a38b58695b20a65e (patch)
treea5bec91a7fd49850ac80096137f8b810cf0ee588 /drape_frontend
parent743f9990a8fd981b96710de3eb4cc51800e656f7 (diff)
Fixed updating maps style
Diffstat (limited to 'drape_frontend')
-rw-r--r--drape_frontend/backend_renderer.cpp8
-rw-r--r--drape_frontend/backend_renderer.hpp2
-rw-r--r--drape_frontend/drape_engine.cpp14
-rw-r--r--drape_frontend/message_subclasses.hpp6
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; }
};