Title: [253076] trunk/Source/WebKit
Revision
253076
Author
cdu...@apple.com
Date
2019-12-03 18:04:01 -0800 (Tue, 03 Dec 2019)

Log Message

[iOS] Unable to interact with the view after a back swipe until lifting the finger off the screen
https://bugs.webkit.org/show_bug.cgi?id=204821

Reviewed by Tim Horton.

If you swipe back on iOS and then put your finger on the screen before the view gesture snapshot is taken down,
your gestures will not be recognized, even after the snapshot is taken down, until after you lift your finger
off the screen and back on. This makes MobileSafari look more unresponsive than it needs to be.

To address the issue, disable user interactions for the snapshot view, so that interactions go through to the
actual view underneath.

* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (253075 => 253076)


--- trunk/Source/WebKit/ChangeLog	2019-12-04 01:42:51 UTC (rev 253075)
+++ trunk/Source/WebKit/ChangeLog	2019-12-04 02:04:01 UTC (rev 253076)
@@ -1,5 +1,22 @@
 2019-12-03  Chris Dumez  <cdu...@apple.com>
 
+        [iOS] Unable to interact with the view after a back swipe until lifting the finger off the screen
+        https://bugs.webkit.org/show_bug.cgi?id=204821
+
+        Reviewed by Tim Horton.
+
+        If you swipe back on iOS and then put your finger on the screen before the view gesture snapshot is taken down,
+        your gestures will not be recognized, even after the snapshot is taken down, until after you lift your finger
+        off the screen and back on. This makes MobileSafari look more unresponsive than it needs to be.
+
+        To address the issue, disable user interactions for the snapshot view, so that interactions go through to the
+        actual view underneath.
+
+        * UIProcess/ios/ViewGestureControllerIOS.mm:
+        (WebKit::ViewGestureController::beginSwipeGesture):
+
+2019-12-03  Chris Dumez  <cdu...@apple.com>
+
         Use a 3 second timeout for the view gesture snapshot on macOS
         https://bugs.webkit.org/show_bug.cgi?id=204818
 

Modified: trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm (253075 => 253076)


--- trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm	2019-12-04 01:42:51 UTC (rev 253075)
+++ trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm	2019-12-04 02:04:01 UTC (rev 253076)
@@ -201,6 +201,11 @@
 
     RetainPtr<UIViewController> snapshotViewController = adoptNS([[UIViewController alloc] init]);
     m_snapshotView = adoptNS([[UIView alloc] initWithFrame:liveSwipeViewFrame]);
+
+    // Disabling user interaction on the snapshot view lets the gestures go through the snapshot view, to the
+    // actual underlying view.
+    [m_snapshotView setUserInteractionEnabled:NO];
+
     [m_snapshotView layer].name = @"SwipeSnapshot";
 
     RetainPtr<UIColor> backgroundColor = [UIColor whiteColor];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to