• Hugo Holgersson's avatar
    Snav: Respect a pinch-zoomed viewport · 25bd3940
    Hugo Holgersson authored
    Previously we used the *layout* viewport's rectangle to determine
    if a certain node was visible or not. Let's use the *visual*
    viewport instead. Now:
    
     A visible node is a node that intersects the visual viewport.
    
    This logic is used by spatnav to rule out offscreen focus candidates
    and an offscreen activeElement. When activeElement is offscreen,
    spatnav doesn't use it as its search origin; the search will start
    at an edge of the visual viewport instead.
    
    For consistency, I replaced all other uses of LayoutViewport()
    with GetScrollableArea() - even though fixing HasOffscreenRect()
    was enough to fix Issue 823227.
    
    Bug: 823227
    Change-Id: I8a89cfc98d896998b899a5246f2c38e23fe0171b
    Reviewed-on: https://chromium-review.googlesource.com/1204094
    Commit-Queue: Hugo Holgersson <hugoh@vewd.com>
    Reviewed-by: default avatarDavid Bokan <bokan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#588792}
    25bd3940
snav-start-at-document-bottom.html 599 Bytes