diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 239f220562..20a1f7a3d9 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -250,14 +250,7 @@ const long long LITE_IDL = 431183278L; m2::PointD pxClicked(point.x * scaleFactor, point.y * scaleFactor); Framework & f = GetFramework(); - if (f.HasActiveUserMark() && !isLongClick) - f.GetBalloonManager().Dismiss(); - else - { - UserMark const * userMark = f.GetUserMark(m2::PointD(pxClicked.x, pxClicked.y), isLongClick); - if (userMark) - f.GetBalloonManager().OnShowMark(userMark); - } + f.GetBalloonManager().OnShowMark(f.GetUserMark(m2::PointD(pxClicked.x, pxClicked.y), isLongClick)); } - (void)onSingleTap:(NSValue *)point diff --git a/map/framework.cpp b/map/framework.cpp index 993885db5c..f113a415fd 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1646,6 +1646,9 @@ UserMark const * Framework::GetUserMark(m2::PointD const & pxPoint, bool isLongP UserMark const * mark = m_bmManager.FindNearestUserMark(rect); + if (m_bmManager.UserMarkHasActive() && !isLongPress) + return mark; + if (mark == NULL) { bool needMark = false; diff --git a/map/framework.hpp b/map/framework.hpp index 61b44809b2..1ee3cbd011 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -12,7 +12,7 @@ #include "bookmark.hpp" #include "bookmark_manager.hpp" -#include "balloon_manager.hpp" +#include "pin_click_manager.hpp" #include "mwm_url.hpp" diff --git a/map/map.pro b/map/map.pro index 8b7761145d..4c2ab3a832 100644 --- a/map/map.pro +++ b/map/map.pro @@ -59,7 +59,6 @@ HEADERS += \ geometry_processors.hpp \ bookmark_manager.hpp \ ge0_parser.hpp \ - balloon_manager.hpp \ scales_processor.hpp \ yopme_render_policy.hpp \ track.hpp \ @@ -67,7 +66,8 @@ HEADERS += \ user_mark_container.hpp \ user_mark.hpp \ user_mark_dl_cache.hpp \ - anim_phase_chain.hpp + anim_phase_chain.hpp \ + pin_click_manager.hpp SOURCES += \ feature_vec_model.cpp \ @@ -113,7 +113,6 @@ SOURCES += \ bookmark_manager.cpp \ ge0_parser.cpp \ ../api/src/c/api-client.c \ - balloon_manager.cpp \ scales_processor.cpp \ yopme_render_policy.cpp \ track.cpp \ @@ -121,7 +120,8 @@ SOURCES += \ user_mark_container.cpp \ user_mark.cpp \ user_mark_dl_cache.cpp \ - anim_phase_chain.cpp + anim_phase_chain.cpp \ + pin_click_manager.cpp !iphone*:!tizen*:!android* { HEADERS += qgl_render_context.hpp diff --git a/map/balloon_manager.cpp b/map/pin_click_manager.cpp similarity index 94% rename from map/balloon_manager.cpp rename to map/pin_click_manager.cpp index 0fe34d5a74..50402459e4 100644 --- a/map/balloon_manager.cpp +++ b/map/pin_click_manager.cpp @@ -1,4 +1,4 @@ -#include "balloon_manager.hpp" +#include "pin_click_manager.hpp" #include "framework.hpp" #include "../search/result.hpp" @@ -41,7 +41,7 @@ void PinClickManager::OnBookmarkClick(BookmarkAndCategory const & bnc) void PinClickManager::SetBalloonVisible(bool isVisible) { - if (!isVisible) + if (!isVisible && m_f.HasActiveUserMark()) OnDismiss(); m_f.Invalidate(); diff --git a/map/balloon_manager.hpp b/map/pin_click_manager.hpp similarity index 100% rename from map/balloon_manager.hpp rename to map/pin_click_manager.hpp