Title: [188053] trunk/Source/WebKit2
Revision
188053
Author
enr...@apple.com
Date
2015-08-06 13:14:58 -0700 (Thu, 06 Aug 2015)

Log Message

Allow long press to cancel link preview.
https://bugs.webkit.org/show_bug.cgi?id=147743
rdar://problem/22128839

Reviewed by Tim Horton.

We should be able to show the context menu at the beginnig of link preview.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _longPressRecognized:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _registerPreview]):
(-[WKContentView _unregisterPreview]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (188052 => 188053)


--- trunk/Source/WebKit2/ChangeLog	2015-08-06 19:48:29 UTC (rev 188052)
+++ trunk/Source/WebKit2/ChangeLog	2015-08-06 20:14:58 UTC (rev 188053)
@@ -1,3 +1,23 @@
+2015-08-06  Enrica Casucci  <enr...@apple.com>
+
+        Allow long press to cancel link preview.
+        https://bugs.webkit.org/show_bug.cgi?id=147743
+        rdar://problem/22128839
+
+        Reviewed by Tim Horton.
+
+        We should be able to show the context menu at the beginnig of link preview.
+
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _removeDefaultGestureRecognizers]):
+        (-[WKContentView _addDefaultGestureRecognizers]):
+        (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
+        (-[WKContentView _longPressRecognized:]):
+        (-[WKContentView _singleTapRecognized:]):
+        (-[WKContentView _registerPreview]):
+        (-[WKContentView _unregisterPreview]):
+
 2015-08-06  Matt Rajca  <mra...@apple.com>
 
         Media Session: rename isFocusedContentMediaElementPaused and get rid of callback

Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h (188052 => 188053)


--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h	2015-08-06 19:48:29 UTC (rev 188052)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h	2015-08-06 20:14:58 UTC (rev 188053)
@@ -117,6 +117,7 @@
     RetainPtr<WKFormInputSession> _formInputSession;
     RetainPtr<WKFileUploadPanel> _fileUploadPanel;
     RetainPtr<UIGestureRecognizer> _previewGestureRecognizer;
+    RetainPtr<UIGestureRecognizer> _previewSecondaryGestureRecognizer;
 #if HAVE(LINK_PREVIEW)
     RetainPtr<UIPreviewItemController> _previewItemController;
 #endif

Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (188052 => 188053)


--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm	2015-08-06 19:48:29 UTC (rev 188052)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm	2015-08-06 20:14:58 UTC (rev 188053)
@@ -412,7 +412,6 @@
     [self removeGestureRecognizer:_touchEventGestureRecognizer.get()];
     [self removeGestureRecognizer:_singleTapGestureRecognizer.get()];
     [self removeGestureRecognizer:_highlightLongPressGestureRecognizer.get()];
-    [self removeGestureRecognizer:_longPressGestureRecognizer.get()];
     [self removeGestureRecognizer:_doubleTapGestureRecognizer.get()];
     [self removeGestureRecognizer:_twoFingerDoubleTapGestureRecognizer.get()];
 }
@@ -422,7 +421,6 @@
     [self addGestureRecognizer:_touchEventGestureRecognizer.get()];
     [self addGestureRecognizer:_singleTapGestureRecognizer.get()];
     [self addGestureRecognizer:_highlightLongPressGestureRecognizer.get()];
-    [self addGestureRecognizer:_longPressGestureRecognizer.get()];
     [self addGestureRecognizer:_doubleTapGestureRecognizer.get()];
     [self addGestureRecognizer:_twoFingerDoubleTapGestureRecognizer.get()];
 }
@@ -873,6 +871,9 @@
     if (isSamePair(gestureRecognizer, otherGestureRecognizer, _singleTapGestureRecognizer.get(), _textSelectionAssistant.get().singleTapGesture))
         return YES;
 
+    if (isSamePair(gestureRecognizer, otherGestureRecognizer, _highlightLongPressGestureRecognizer.get(), _previewSecondaryGestureRecognizer.get()))
+        return YES;
+
     if (isSamePair(gestureRecognizer, otherGestureRecognizer, _highlightLongPressGestureRecognizer.get(), _previewGestureRecognizer.get()))
         return YES;
 
@@ -1073,21 +1074,25 @@
 {
     ASSERT(gestureRecognizer == _longPressGestureRecognizer);
 
-#if HAVE(LINK_PREVIEW)
-    if ([_previewItemController interactionInProgress])
-        return;
-#endif
-
     _lastInteractionLocation = gestureRecognizer.startPoint;
 
-    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
+    switch ([gestureRecognizer state]) {
+    case UIGestureRecognizerStateBegan:
+    {
         SEL action = "" _actionForLongPress];
         if (action) {
             [self performSelector:action];
             [self _cancelLongPressGestureRecognizer];
-            [UIApp _cancelAllTouches];
         }
     }
+        break;
+    case UIGestureRecognizerStateCancelled:
+    case UIGestureRecognizerStateEnded:
+        [_actionSheetAssistant cleanupSheet];
+        break;
+    default:
+        break;
+    }
 }
 
 - (void)_singleTapRecognized:(UITapGestureRecognizer *)gestureRecognizer
@@ -3217,12 +3222,14 @@
     _previewItemController = adoptNS([[UIPreviewItemController alloc] initWithView:self]);
     [_previewItemController setDelegate:self];
     _previewGestureRecognizer = _previewItemController.get().presentationGestureRecognizer;
+    _previewSecondaryGestureRecognizer = _previewItemController.get().presentationSecondaryGestureRecognizer;
 }
 
 - (void)_unregisterPreview
 {
     [_previewItemController setDelegate:nil];
     _previewGestureRecognizer = nil;
+    _previewSecondaryGestureRecognizer = nil;
     _previewItemController = nil;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to