Changeset 248455 in webkit


Ignore:
Timestamp:
Aug 8, 2019 6:57:49 PM (5 years ago)
Author:
Simon Fraser
Message:

[iOS WK2] Hide previews when an inner overflow or frame scrollview scrolls
https://bugs.webkit.org/show_bug.cgi?id=200552
rdar://problem/54086338

Reviewed by Wenson Hsieh.

Give UITargetedPreview the UIScrollView that the target element is inside of,
so it can clean up if the user starts to scroll that view.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _createTargetedPreviewIfPossible]):

Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r248452 r248455  
     12019-08-08  Simon Fraser  <simon.fraser@apple.com>
     2
     3        [iOS WK2] Hide previews when an inner overflow or frame scrollview scrolls
     4        https://bugs.webkit.org/show_bug.cgi?id=200552
     5        rdar://problem/54086338
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        Give UITargetedPreview the UIScrollView that the target element is inside of,
     10        so it can clean up if the user starts to scroll that view.
     11
     12        * Platform/spi/ios/UIKitSPI.h:
     13        * UIProcess/ios/WKContentViewInteraction.mm:
     14        (-[WKContentView _createTargetedPreviewIfPossible]):
     15
    1162019-08-08  Chris Dumez  <cdumez@apple.com>
    217
  • trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h

    r247656 r248455  
    113113#endif
    114114
     115#if __has_include(<UIKit/UITargetedPreview_Private.h>)
     116#import <UIKit/UITargetedPreview_Private.h>
     117#endif
     118
    115119#else // USE(APPLE_INTERNAL_SDK)
    116120
     
    11581162#endif
    11591163
     1164#if USE(UICONTEXTMENU)
     1165@interface UITargetedPreview (Radar54086338)
     1166@property (nonatomic, strong, setter=_setOverridePositionTrackingView:) UIView *overridePositionTrackingView;
     1167@end
     1168#endif // USE(UICONTEXTMENU)
     1169
    11601170@interface UIResponder ()
    11611171- (UIResponder *)firstResponder;
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r248433 r248455  
    81868186        targetedPreview = createFallbackTargetedPreview(self, self.containerViewForTargetedPreviews, _positionInformation.bounds);
    81878187
     8188    if (_positionInformation.containerScrollingNodeID) {
     8189        UIScrollView *positionTrackingView = _webView.scrollView;
     8190        if (auto* scrollingCoordinator = _page->scrollingCoordinatorProxy())
     8191            positionTrackingView = scrollingCoordinator->scrollViewForScrollingNodeID(_positionInformation.containerScrollingNodeID);
     8192
     8193        if ([targetedPreview respondsToSelector:@selector(_setOverridePositionTrackingView:)])
     8194            [targetedPreview _setOverridePositionTrackingView:positionTrackingView];
     8195    }
     8196
    81888197    _contextMenuInteractionTargetedPreview = WTFMove(targetedPreview);
    81898198    return _contextMenuInteractionTargetedPreview.get();
Note: See TracChangeset for help on using the changeset viewer.