From e3de687ff5934af65b5b3ac4cab6016f5e89bd5b Mon Sep 17 00:00:00 2001 From: Ilya Grechuhin Date: Mon, 29 Jun 2015 14:22:10 +0300 Subject: [PATCH] [ios] Fixed PP sticking. --- iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm b/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm index 032c250efe..554560f78d 100644 --- a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm +++ b/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm @@ -186,6 +186,7 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState) ppv.minY += [sender translationInView:ppvSuper].y; ppv.midY = MAX(ppv.midY, [self getOpenTargetPoint].y); + _targetPoint = ppv.center; if (ppv.minY <= 0.0) [MWMPlacePageNavigationBar showNavigationBarForPlacePage:self]; else @@ -200,13 +201,24 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState) CGFloat const bound1 = ppvSuper.height * 0.2; CGFloat const bound2 = ppvSuper.height * 0.5; if (estimatedYPosition < bound1) - self.state = MWMiPhonePortraitPlacePageStateHover; + { + if (self.panVelocity <= 0.0) + self.state = MWMiPhonePortraitPlacePageStateHover; + else + self.state = MWMiPhonePortraitPlacePageStateOpen; + } else if (self.panVelocity <= 0.0) + { self.state = MWMiPhonePortraitPlacePageStateOpen; + } else if (ppv.minY < bound2) + { self.state = MWMiPhonePortraitPlacePageStatePreview; + } else + { [self.manager dismissPlacePage]; + } } }