From 3327a811e1bb5b1ce4cd1b6c3d85cf03d301593d Mon Sep 17 00:00:00 2001 From: Roman Sorokin Date: Fri, 25 Jul 2014 12:45:59 +0300 Subject: fix for updating model-view matrix --- drape/overlay_tree.cpp | 6 ++++-- drape/overlay_tree.hpp | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'drape') 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 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 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 find_result_t; -- cgit v1.2.3