From 248ac712bec660fb3743ffe910e16387b213b66b Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Mon, 28 Aug 2017 18:15:52 +0300 Subject: [PATCH] Do not select passed route mark. --- map/routing_mark.hpp | 1 + map/user_mark.hpp | 1 + map/user_mark_container.cpp | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/map/routing_mark.hpp b/map/routing_mark.hpp index a76765d7a0..40e05b116c 100644 --- a/map/routing_mark.hpp +++ b/map/routing_mark.hpp @@ -38,6 +38,7 @@ public: std::string GetSymbolName() const override; UserMark::Type GetMarkType() const override { return Type::ROUTING; } + bool IsAvailableForSearch() const override { return !IsPassed(); } RouteMarkType GetRoutePointType() const { return m_markData.m_pointType; } void SetRoutePointType(RouteMarkType type); diff --git a/map/user_mark.hpp b/map/user_mark.hpp index b58dbe4b72..b377f35a0d 100644 --- a/map/user_mark.hpp +++ b/map/user_mark.hpp @@ -57,6 +57,7 @@ public: UserMarkContainer const * GetContainer() const; ms::LatLon GetLatLon() const; virtual Type GetMarkType() const = 0; + virtual bool IsAvailableForSearch() const { return true; } protected: void SetDirty() { m_isDirty = true; } diff --git a/map/user_mark_container.cpp b/map/user_mark_container.cpp index c75ad47dbe..986cdf7c18 100644 --- a/map/user_mark_container.cpp +++ b/map/user_mark_container.cpp @@ -76,7 +76,7 @@ UserMark const * UserMarkContainer::FindMarkInRect(m2::AnyRectD const & rect, do FindMarkFunctor f(&mark, d, rect); for (size_t i = 0; i < m_userMarks.size(); ++i) { - if (rect.IsPointInside(m_userMarks[i]->GetPivot())) + if (m_userMarks[i]->IsAvailableForSearch() && rect.IsPointInside(m_userMarks[i]->GetPivot())) f(m_userMarks[i].get()); } }