From d04327082d962772718a2df5934266b404249d6d Mon Sep 17 00:00:00 2001 From: Eivind Samseth Date: Fri, 15 Aug 2025 20:00:39 +0200 Subject: [PATCH] [drape] Match iOS double tap to zoom behavior Signed-off-by: eisa01 --- libs/drape_frontend/user_event_stream.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/drape_frontend/user_event_stream.cpp b/libs/drape_frontend/user_event_stream.cpp index 0de671cb5..c21495520 100644 --- a/libs/drape_frontend/user_event_stream.cpp +++ b/libs/drape_frontend/user_event_stream.cpp @@ -15,6 +15,8 @@ #include "base/macros.hpp" +#include "std/target_os.hpp" + #include #ifdef DEBUG @@ -1245,8 +1247,13 @@ void UserEventStream::UpdateDoubleTapAndHold(Touch const & touch) TEST_CALL(DOUBLE_TAP_AND_HOLD); ASSERT_EQUAL(m_state, STATE_DOUBLE_TAP_HOLD, ()); float const kPowerModifier = 10.0f; +#if defined(OMIM_OS_IPHONE) || defined(OMIM_OS_MAC) + int const kPlatformScaleModifier = -1; +#else + int const kPlatformScaleModifier = 1; +#endif double const scaleFactor = exp(kPowerModifier * (touch.m_location.y - m_startDoubleTapAndHold.y) / - GetCurrentScreen().PixelRectIn3d().SizeY()); + GetCurrentScreen().PixelRectIn3d().SizeY() * kPlatformScaleModifier); m_startDoubleTapAndHold = touch.m_location; m2::PointD scaleCenter = m_startDragOrg;