Changeset 168174 in webkit


Ignore:
Timestamp:
May 2, 2014, 10:29:20 AM (12 years ago)
Author:
Simon Fraser
Message:

[iOS WK2] Can't scroll on gatesnotes.com
https://bugs.webkit.org/show_bug.cgi?id=132459
<rdar://problem/16770909>

Reviewed by Benjamin Poulain.

The custom UIView hit-testing code was finding views that were created by
the compositing code for clipping, above the UIScrollViews. We only ever
need to find UIScrollViews here for touch overflow-scrolling, so constrain
the hit-testing code to only return UIScrollViews.

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]):
(-[UIView _findDescendantViewAtPoint:withEvent:]):
(-[UIView _recursiveFindDescendantViewAtPoint:withEvent:]): Deleted.

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r168168 r168174  
     12014-05-01  Simon Fraser  <simon.fraser@apple.com>
     2
     3        [iOS WK2] Can't scroll on gatesnotes.com
     4        https://bugs.webkit.org/show_bug.cgi?id=132459
     5        <rdar://problem/16770909>
     6
     7        Reviewed by Benjamin Poulain.
     8       
     9        The custom UIView hit-testing code was finding views that were created by
     10        the compositing code for clipping, above the UIScrollViews. We only ever
     11        need to find UIScrollViews here for touch overflow-scrolling, so constrain
     12        the hit-testing code to only return UIScrollViews.
     13
     14        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
     15        (-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]):
     16        (-[UIView _findDescendantViewAtPoint:withEvent:]):
     17        (-[UIView _recursiveFindDescendantViewAtPoint:withEvent:]): Deleted.
     18
    1192014-05-02  Carlos Alberto Lopez Perez  <clopez@igalia.com>
    220
  • trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm

    r167740 r168174  
    5050// UIView hit testing assumes that views should only hit test subviews that are entirely contained
    5151// in the view. This is not true of web content.
    52 - (UIView *)_recursiveFindDescendantViewAtPoint:(CGPoint)point withEvent:(UIEvent *)event
     52// We only want to find UIScrollViews here. Other views are ignored.
     53- (UIView *)_recursiveFindDescendantScrollViewAtPoint:(CGPoint)point withEvent:(UIEvent *)event
    5354{
    5455    if (self.clipsToBounds && ![self pointInside:point withEvent:event])
     
    5960        CGPoint subviewPoint = [view convertPoint:point fromView:self];
    6061
    61         if ([view pointInside:subviewPoint withEvent:event])
     62        if ([view pointInside:subviewPoint withEvent:event] && [view isKindOfClass:[UIScrollView class]])
    6263            foundView = view;
    6364
     
    6566            return;
    6667
    67         if (UIView *hitView = [view _recursiveFindDescendantViewAtPoint:subviewPoint withEvent:event])
     68        if (UIView *hitView = [view _recursiveFindDescendantScrollViewAtPoint:subviewPoint withEvent:event])
    6869            foundView = hitView;
    6970    }];
     
    7475- (UIView *)_findDescendantViewAtPoint:(CGPoint)point withEvent:(UIEvent *)event
    7576{
    76     return [self _recursiveFindDescendantViewAtPoint:point withEvent:event];
     77    return [self _recursiveFindDescendantScrollViewAtPoint:point withEvent:event];
    7778}
    7879
Note: See TracChangeset for help on using the changeset viewer.