diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java index b865e6c5b..5f9ebf711 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java @@ -619,7 +619,7 @@ public class PlacePageView extends Fragment private void addOrganisation() { - ((MwmActivity) requireActivity()).showPositionChooserForEditor(true, false); + ((MwmActivity) requireActivity()).showPositionChooserForEditor(true, true); } private void addPlace() diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 58f573719..b0a3154ae 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -839,21 +839,19 @@ void FrontendRenderer::AcceptMessage(ref_ptr message) m_dragBoundArea = msg->AcceptBoundArea(); if (msg->IsEnabled()) { - if (!m_dragBoundArea.empty()) + auto const pt = msg->GetOptionalPosition(); + if (pt || m_dragBoundArea.empty()) { - PullToBoundArea(true /* randomPlace */, true /* applyZoom */); + int zoom = kDoNotChangeZoom; + if (GetCurrentZoom() < scales::GetAddNewPlaceScale()) + zoom = scales::GetAddNewPlaceScale(); + AddUserEvent(make_unique_dp(pt ? *pt : m_userEventStream.GetCurrentScreen().GlobalRect().Center(), + zoom, true /* isAnim */, false /* trackVisibleViewport */, + nullptr /* parallelAnimCreator */)); } else { - // Exact position for POI or screen's center for Add place on map. - int zoom = kDoNotChangeZoom; - if (GetCurrentZoom() < scales::GetAddNewPlaceScale()) - zoom = scales::GetAddNewPlaceScale(); - - auto const pt = msg->GetOptionalPosition(); - AddUserEvent(make_unique_dp(pt ? *pt : m_userEventStream.GetCurrentScreen().GlobalRect().Center(), - zoom, true /* isAnim */, false /* trackVisibleViewport */, - nullptr /* parallelAnimCreator */)); + PullToBoundArea(true /* randomPlace */, true /* applyZoom */); } } break;