diff options
author | Roman Sorokin <sorok-roma@yandex.ru> | 2014-07-25 13:45:59 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 02:22:15 +0300 |
commit | 3327a811e1bb5b1ce4cd1b6c3d85cf03d301593d (patch) | |
tree | 72c290c2a433d197acbb2229768d459348c4b52d /drape | |
parent | f08b054e401fa0fa2f029ae95530a1afc26e5e5f (diff) |
fix for updating model-view matrix
Diffstat (limited to 'drape')
-rw-r--r-- | drape/overlay_tree.cpp | 6 | ||||
-rw-r--r-- | drape/overlay_tree.hpp | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drape/overlay_tree.cpp b/drape/overlay_tree.cpp index d879e4083a..3fb4ccde64 100644 --- a/drape/overlay_tree.cpp +++ b/drape/overlay_tree.cpp @@ -2,15 +2,17 @@ #include "../std/bind.hpp" -void OverlayTree::StartOverlayPlacing(ScreenBase const & screen) +void OverlayTree::StartOverlayPlacing(ScreenBase const & screen, bool canOverlap) { m_modelView = screen; + m_canOverlap = canOverlap; ASSERT(m_tree.empty(), ()); } void OverlayTree::Add(RefPointer<OverlayHandle> handle) { - handle->SetIsVisible(false); + handle->SetIsVisible(m_canOverlap); + handle->Update(m_modelView); m2::RectD pixelRect = handle->GetPixelRect(m_modelView); find_result_t elements; diff --git a/drape/overlay_tree.hpp b/drape/overlay_tree.hpp index 5e9bb5207d..6cfe68cd9b 100644 --- a/drape/overlay_tree.hpp +++ b/drape/overlay_tree.hpp @@ -10,7 +10,7 @@ class OverlayTree { public: - void StartOverlayPlacing(ScreenBase const & screen); + void StartOverlayPlacing(ScreenBase const & screen, bool canOverlap = false); void Add(RefPointer<OverlayHandle> handle); void EndOverlayPlacing(); @@ -30,6 +30,7 @@ private: ScreenBase m_modelView; typedef KDTree::KDTree<4, Node> tree_t; tree_t m_tree; + bool m_canOverlap; private: typedef buffer_vector<Node const *, 8> find_result_t; |