From d3c46087fa2b1adbfbbf9510e851ec13f2baad60 Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Mon, 28 Dec 2015 15:42:42 +0300 Subject: [PATCH] Fixed rotation on compass tap. --- drape_frontend/user_event_stream.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drape_frontend/user_event_stream.cpp b/drape_frontend/user_event_stream.cpp index cf9a420a74..2d244f0108 100644 --- a/drape_frontend/user_event_stream.cpp +++ b/drape_frontend/user_event_stream.cpp @@ -182,6 +182,15 @@ ScreenBase const & UserEventStream::ProcessEvents(bool & modelViewChange, bool & { m2::AnyRectD dstRect = GetTargetRect(); dstRect.SetAngle(e.m_rotate.m_targetAzimut); + if (m_navigator.Screen().isPerspective()) + { + ScreenBase const & screen = m_navigator.Screen(); + ScreenBase screenNew = screen; + screenNew.SetAngle(e.m_rotate.m_targetAzimut); + + m2::PointD const screenCenter = screen.P3dtoP(screen.PixelRectIn3d().Center()); + dstRect.Offset(screen.PtoG(screenCenter) - screenNew.PtoG(screenCenter)); + } breakAnim = SetRect(dstRect, true); } break;