Changeset 188053 in webkit


Ignore:
Timestamp:
Aug 6, 2015, 1:14:58 PM (10 years ago)
Author:
enrica@apple.com
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]):

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r188048 r188053  
     12015-08-06  Enrica Casucci  <enrica@apple.com>
     2
     3        Allow long press to cancel link preview.
     4        https://bugs.webkit.org/show_bug.cgi?id=147743
     5        rdar://problem/22128839
     6
     7        Reviewed by Tim Horton.
     8
     9        We should be able to show the context menu at the beginnig of link preview.
     10
     11        * UIProcess/ios/WKContentViewInteraction.h:
     12        * UIProcess/ios/WKContentViewInteraction.mm:
     13        (-[WKContentView _removeDefaultGestureRecognizers]):
     14        (-[WKContentView _addDefaultGestureRecognizers]):
     15        (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
     16        (-[WKContentView _longPressRecognized:]):
     17        (-[WKContentView _singleTapRecognized:]):
     18        (-[WKContentView _registerPreview]):
     19        (-[WKContentView _unregisterPreview]):
     20
    1212015-08-06  Matt Rajca  <mrajca@apple.com>
    222
  • trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h

    r187259 r188053  
    118118    RetainPtr<WKFileUploadPanel> _fileUploadPanel;
    119119    RetainPtr<UIGestureRecognizer> _previewGestureRecognizer;
     120    RetainPtr<UIGestureRecognizer> _previewSecondaryGestureRecognizer;
    120121#if HAVE(LINK_PREVIEW)
    121122    RetainPtr<UIPreviewItemController> _previewItemController;
  • trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm

    r187764 r188053  
    413413    [self removeGestureRecognizer:_singleTapGestureRecognizer.get()];
    414414    [self removeGestureRecognizer:_highlightLongPressGestureRecognizer.get()];
    415     [self removeGestureRecognizer:_longPressGestureRecognizer.get()];
    416415    [self removeGestureRecognizer:_doubleTapGestureRecognizer.get()];
    417416    [self removeGestureRecognizer:_twoFingerDoubleTapGestureRecognizer.get()];
     
    423422    [self addGestureRecognizer:_singleTapGestureRecognizer.get()];
    424423    [self addGestureRecognizer:_highlightLongPressGestureRecognizer.get()];
    425     [self addGestureRecognizer:_longPressGestureRecognizer.get()];
    426424    [self addGestureRecognizer:_doubleTapGestureRecognizer.get()];
    427425    [self addGestureRecognizer:_twoFingerDoubleTapGestureRecognizer.get()];
     
    872870
    873871    if (isSamePair(gestureRecognizer, otherGestureRecognizer, _singleTapGestureRecognizer.get(), _textSelectionAssistant.get().singleTapGesture))
     872        return YES;
     873
     874    if (isSamePair(gestureRecognizer, otherGestureRecognizer, _highlightLongPressGestureRecognizer.get(), _previewSecondaryGestureRecognizer.get()))
    874875        return YES;
    875876
     
    10741075    ASSERT(gestureRecognizer == _longPressGestureRecognizer);
    10751076
    1076 #if HAVE(LINK_PREVIEW)
    1077     if ([_previewItemController interactionInProgress])
    1078         return;
    1079 #endif
    1080 
    10811077    _lastInteractionLocation = gestureRecognizer.startPoint;
    10821078
    1083     if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
     1079    switch ([gestureRecognizer state]) {
     1080    case UIGestureRecognizerStateBegan:
     1081    {
    10841082        SEL action = [self _actionForLongPress];
    10851083        if (action) {
    10861084            [self performSelector:action];
    10871085            [self _cancelLongPressGestureRecognizer];
    1088             [UIApp _cancelAllTouches];
    10891086        }
     1087    }
     1088        break;
     1089    case UIGestureRecognizerStateCancelled:
     1090    case UIGestureRecognizerStateEnded:
     1091        [_actionSheetAssistant cleanupSheet];
     1092        break;
     1093    default:
     1094        break;
    10901095    }
    10911096}
     
    32183223    [_previewItemController setDelegate:self];
    32193224    _previewGestureRecognizer = _previewItemController.get().presentationGestureRecognizer;
     3225    _previewSecondaryGestureRecognizer = _previewItemController.get().presentationSecondaryGestureRecognizer;
    32203226}
    32213227
     
    32243230    [_previewItemController setDelegate:nil];
    32253231    _previewGestureRecognizer = nil;
     3232    _previewSecondaryGestureRecognizer = nil;
    32263233    _previewItemController = nil;
    32273234}
Note: See TracChangeset for help on using the changeset viewer.