From 867e01581c8211b73d1fb0263e2eebaf9e3198b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Sun, 17 Jan 2016 20:46:23 -0800 Subject: [PATCH] [ios] Maintain user tracking mode after orientation change --- platform/ios/src/MGLMapView.mm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 3ecbeeb33..9e511c489 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -824,7 +824,8 @@ std::chrono::steady_clock::duration MGLDurationInSeconds(float duration) // set content insets. CLLocationCoordinate2D oldCenter = self.centerCoordinate; self.contentInset = contentInsets; - self.centerCoordinate = oldCenter; + // Don’t call -setCenterCoordinate:, which resets the user tracking mode. + [self _setCenterCoordinate:oldCenter animated:NO]; } } @@ -1672,6 +1673,10 @@ std::chrono::steady_clock::duration MGLDurationInSeconds(float duration) [self _setCenterCoordinate:centerCoordinate edgePadding:self.contentInset zoomLevel:zoomLevel direction:direction duration:animated ? MGLAnimationDuration : 0 animationTimingFunction:nil completionHandler:completion]; } +- (void)_setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate animated:(BOOL)animated { + [self _setCenterCoordinate:centerCoordinate edgePadding:self.contentInset zoomLevel:self.zoomLevel direction:self.direction duration:animated ? MGLAnimationDuration : 0 animationTimingFunction:nil completionHandler:NULL]; +} + - (void)_setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate edgePadding:(UIEdgeInsets)insets zoomLevel:(double)zoomLevel direction:(CLLocationDirection)direction duration:(NSTimeInterval)duration animationTimingFunction:(nullable CAMediaTimingFunction *)function completionHandler:(nullable void (^)(void))completion { _mbglMap->cancelTransitions();