From 9d7ebe6f670282c59e6ac5252ab26f0c92ee73f5 Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Wed, 24 Jun 2020 12:06:46 +0300 Subject: [PATCH] [guides on map][drape] Increase touch area for guides marks. --- drape_frontend/frontend_renderer.cpp | 12 ++++++++++++ drape_frontend/frontend_renderer.hpp | 1 + map/bookmark_manager.cpp | 6 ++++-- map/framework.cpp | 3 +++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 7de217719b..ce0ccecf8c 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -2705,6 +2705,18 @@ m2::AnyRectD TapInfo::GetRoutingPointSearchRect(m2::PointD const & mercator, Scr return result; } +// static +m2::AnyRectD TapInfo::GetGuideSearchRect(m2::PointD const & mercator, ScreenBase const & screen) +{ + static int constexpr kGuideTouchPixelIncrease = 20; + + m2::AnyRectD result; + double const sizeExt = kGuideTouchPixelIncrease * VisualParams::Instance().GetVisualScale(); + double const halfSize = VisualParams::Instance().GetTouchRectRadius(); + screen.GetTouchRect(screen.GtoP(mercator), halfSize + sizeExt, result); + return result; +} + // static m2::AnyRectD TapInfo::GetPreciseSearchRect(m2::PointD const & mercator, double const eps) { diff --git a/drape_frontend/frontend_renderer.hpp b/drape_frontend/frontend_renderer.hpp index c4228410d2..97c18400e5 100755 --- a/drape_frontend/frontend_renderer.hpp +++ b/drape_frontend/frontend_renderer.hpp @@ -67,6 +67,7 @@ struct TapInfo static m2::AnyRectD GetDefaultSearchRect(m2::PointD const & mercator, ScreenBase const & screen); static m2::AnyRectD GetBookmarkSearchRect(m2::PointD const & mercator, ScreenBase const & screen); static m2::AnyRectD GetRoutingPointSearchRect(m2::PointD const & mercator, ScreenBase const & screen); + static m2::AnyRectD GetGuideSearchRect(m2::PointD const & mercator, ScreenBase const & screen); static m2::AnyRectD GetPreciseSearchRect(m2::PointD const & mercator, double const eps); }; diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index 530cbaa6cb..7e9ff344f6 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -2740,10 +2740,12 @@ UserMark const * BookmarkManager::FindNearestUserMark(TTouchRectHolder const & h BestUserMarkFinder finder(holder, findOnlyVisible, this); auto hasFound = finder(UserMark::Type::ROUTING) || finder(UserMark::Type::ROAD_WARNING) || - finder(UserMark::Type::GUIDE) || - finder(UserMark::Type::GUIDE_CLUSTER) || finder(UserMark::Type::SEARCH) || finder(UserMark::Type::API); + + hasFound = finder(UserMark::Type::GUIDE) || hasFound; + hasFound = finder(UserMark::Type::GUIDE_CLUSTER) || hasFound; + if (!hasFound) { for (auto const & pair : m_categories) diff --git a/map/framework.cpp b/map/framework.cpp index 42fe4e5b64..46d86be2c6 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -2844,6 +2844,9 @@ UserMark const * Framework::FindUserMarkInTapPosition(place_page::BuildInfo cons if (type == UserMark::Type::ROUTING || type == UserMark::Type::ROAD_WARNING) return df::TapInfo::GetRoutingPointSearchRect(buildInfo.m_mercator, m_currentModelView); + if (type == UserMark::Type::GUIDE || type == UserMark::Type::GUIDE_CLUSTER) + return df::TapInfo::GetGuideSearchRect(buildInfo.m_mercator, m_currentModelView); + return df::TapInfo::GetDefaultSearchRect(buildInfo.m_mercator, m_currentModelView); }, [](UserMark::Type type)