Changeset 211121 in webkit
- Timestamp:
- Jan 24, 2017, 4:49:33 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
-
ChangeLog (modified) (1 diff)
-
Platform/spi/ios/UIKitSPI.h (modified) (1 diff)
-
UIProcess/API/Cocoa/WKWebView.mm (modified) (1 diff)
-
UIProcess/API/Cocoa/WKWebViewInternal.h (modified) (1 diff)
-
UIProcess/Cocoa/ViewGestureController.h (modified) (2 diffs)
-
UIProcess/ios/ViewGestureControllerIOS.mm (modified) (2 diffs)
-
UIProcess/ios/WKContentViewInteraction.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r211097 r211121 1 2017-01-24 Tim Horton <timothy_horton@apple.com> 2 3 Script gets touch events even after navigation swipe begins 4 https://bugs.webkit.org/show_bug.cgi?id=167383 5 <rdar://problem/22938927> 6 7 Reviewed by Simon Fraser. 8 9 * Platform/spi/ios/UIKitSPI.h: 10 * UIProcess/API/Cocoa/WKWebView.mm: 11 (-[WKWebView _isNavigationSwipeGestureRecognizer:]): 12 * UIProcess/API/Cocoa/WKWebViewInternal.h: 13 * UIProcess/Cocoa/ViewGestureController.h: 14 * UIProcess/ios/ViewGestureControllerIOS.mm: 15 (-[WKSwipeTransitionController isNavigationSwipeGestureRecognizer:]): 16 (WebKit::ViewGestureController::isNavigationSwipeGestureRecognizer): 17 * UIProcess/ios/WKContentViewInteraction.mm: 18 (-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]): 19 Require the navigation swipe gesture recognizer to fail before the 20 UIWebTouchEventsGestureRecognizer can recognize. This way, the page 21 doesn't get touch events during the swipe, which previously led to 22 e.g. carousels scrolling while swiping. 23 1 24 2017-01-24 Matt Rajca <mrajca@apple.com> 2 25 -
trunk/Source/WebKit2/Platform/spi/ios/UIKitSPI.h
r209931 r211121 743 743 @interface _UINavigationInteractiveTransitionBase () 744 744 - (id)initWithGestureRecognizerView:(UIView *)gestureRecognizerView animator:(id<UIViewControllerAnimatedTransitioning>)animator delegate:(id<_UINavigationInteractiveTransitionBaseDelegate>)delegate; 745 @property (nonatomic, weak) UIPanGestureRecognizer *gestureRecognizer; 745 746 @property (nonatomic, assign) BOOL shouldReverseTranslation; 746 747 @property (nonatomic, retain) _UINavigationParallaxTransition *animationController; -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r211095 r211121 2303 2303 { 2304 2304 return _allowsBackForwardNavigationGestures; 2305 } 2306 2307 - (BOOL)_isNavigationSwipeGestureRecognizer:(UIGestureRecognizer *)recognizer 2308 { 2309 if (!_gestureController) 2310 return NO; 2311 return _gestureController->isNavigationSwipeGestureRecognizer(recognizer); 2305 2312 } 2306 2313 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h
r209867 r211121 115 115 - (void)_navigationGestureDidBegin; 116 116 - (void)_navigationGestureDidEnd; 117 - (BOOL)_isNavigationSwipeGestureRecognizer:(UIGestureRecognizer *)recognizer; 117 118 118 119 @property (nonatomic, readonly) BOOL _isBackground; -
trunk/Source/WebKit2/UIProcess/Cocoa/ViewGestureController.h
r206986 r211121 40 40 41 41 #if PLATFORM(IOS) 42 OBJC_CLASS UIGestureRecognizer; 42 43 OBJC_CLASS UIView; 43 44 OBJC_CLASS WKSwipeTransitionController; … … 106 107 bool isPhysicallySwipingLeft(SwipeDirection) const; 107 108 #else 109 bool isNavigationSwipeGestureRecognizer(UIGestureRecognizer *) const; 108 110 void installSwipeHandler(UIView *gestureRecognizerView, UIView *swipingView); 109 111 void beginSwipeGesture(_UINavigationInteractiveTransitionBase *, SwipeDirection); -
trunk/Source/WebKit2/UIProcess/ios/ViewGestureControllerIOS.mm
r207709 r211121 130 130 } 131 131 132 - (BOOL)isNavigationSwipeGestureRecognizer:(UIGestureRecognizer *)recognizer 133 { 134 return recognizer == [_backTransitionController gestureRecognizer] || recognizer == [_forwardTransitionController gestureRecognizer]; 135 } 136 132 137 @end 133 138 … … 140 145 [m_swipeTransitionContext _setAnimator:nil]; 141 146 [m_swipeInteractiveTransitionDelegate invalidate]; 147 } 148 149 bool ViewGestureController::isNavigationSwipeGestureRecognizer(UIGestureRecognizer *recognizer) const 150 { 151 return [m_swipeInteractiveTransitionDelegate isNavigationSwipeGestureRecognizer:recognizer]; 142 152 } 143 153 -
trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm
r211095 r211121 1189 1189 1190 1190 if (isSamePair(gestureRecognizer, otherGestureRecognizer, _highlightLongPressGestureRecognizer.get(), _previewGestureRecognizer.get())) 1191 return YES; 1192 1193 return NO; 1194 } 1195 1196 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 1197 { 1198 if (gestureRecognizer == _touchEventGestureRecognizer && [_webView _isNavigationSwipeGestureRecognizer:otherGestureRecognizer]) 1191 1199 return YES; 1192 1200
Note:
See TracChangeset
for help on using the changeset viewer.