forked from organicmaps/organicmaps
Route points selection fixed.
This commit is contained in:
parent
c365a06af2
commit
eccdf95e5e
2 changed files with 15 additions and 4 deletions
|
@ -208,7 +208,11 @@ namespace
|
|||
{
|
||||
m2::AnyRectD const & rect = m_rectHolder(container->GetType());
|
||||
if (UserMark const * p = container->FindMarkInRect(rect, m_d))
|
||||
m_mark = p;
|
||||
{
|
||||
double const kEps = 1e-5;
|
||||
if (m_mark == nullptr || !p->GetPivot().EqualDxDy(m_mark->GetPivot(), kEps))
|
||||
m_mark = p;
|
||||
}
|
||||
}
|
||||
|
||||
UserMark const * GetFindedMark() const { return m_mark; }
|
||||
|
|
|
@ -2520,11 +2520,18 @@ UserMark const * Framework::FindUserMarkInTapPosition(m2::PointD const & pt) con
|
|||
double const pxHeight = touchRadius + bmAddition;
|
||||
m_currentModelView.GetTouchRect(pt + m2::PointD(0, bmAddition),
|
||||
pxWidth, pxHeight, bmSearchRect);
|
||||
|
||||
m2::AnyRectD routingRect;
|
||||
m_currentModelView.GetTouchRect(pt, touchRadius + bmAddition, routingRect);
|
||||
|
||||
UserMark const * mark = m_bmManager.FindNearestUserMark(
|
||||
[&rect, &bmSearchRect](UserMarkType type) -> m2::AnyRectD const &
|
||||
[&rect, &bmSearchRect, &routingRect](UserMarkType type) -> m2::AnyRectD const &
|
||||
{
|
||||
return (type == UserMarkType::BOOKMARK_MARK ||
|
||||
type == UserMarkType::ROUTING_MARK) ? bmSearchRect : rect;
|
||||
if (type == UserMarkType::BOOKMARK_MARK)
|
||||
return bmSearchRect;
|
||||
if (type == UserMarkType::ROUTING_MARK)
|
||||
return routingRect;
|
||||
return rect;
|
||||
});
|
||||
return mark;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue