• Prabir Pradhan's avatar
    Reland "exo: Allow Pointer Capture when window is active" · 2fb481c0
    Prabir Pradhan authored
    This reverts commit b89a947a.
    
    Reason for revert: The CTS failures caused by landing this change
    for P are being addressed in ag/13257099. For changes required for R,
    see b/176433665.
    
    Original change's description:
    > Revert "exo: Allow Pointer Capture when window is active"
    >
    > This reverts commit 43be36f0.
    >
    > Reason for revert: Multiple CTS failures
    >
    > Bug: b:175379280
    > Bug: b:175514308
    > Bug: b:175829322
    >
    > Original change's description:
    > > exo: Allow Pointer Capture when window is active
    > >
    > > Pointer Capture was being rejected by chrome when an app came into
    > > focus using keyboard shortcuts (Alt-Tab), but was working as intended
    > > when an app came into focus using the mouse or touchscreen. It was being
    > > rejected because the capture_surface was the sub-surface of the current
    > > focused surface.
    > >
    > > Since the client is responsible for providing the capture surface
    > > through the wayland pointer constraints protocol, it is possible
    > > for the client to request capture on a sub-surface of the current
    > > active surface. Requesting capture on a sub-surface is a valid request
    > > for capture. Rather than ensuring that the capture surface is focused
    > > (used for directing key events), we verify that the active window
    > > contains the window of the capture surface in its hierarchy before we
    > > allow the pointer to be constrained to the surface.
    > >
    > > This also allows the client to change the cursor while the client has
    > > capture, even when the mouse cursor is not currently over a client
    > > window.
    > >
    > > BUG=b:153973515
    > > TEST=manual: request pointer capture, leave app, return to app using
    > > Alt+Tab, verify app has pointer capture.
    > > TEST=exo_unittests
    > >
    > > Change-Id: I56e76469f35ea43100748ebe27966464e32805fc
    > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2559255
    > > Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
    > > Reviewed-by: Tetsui Ohkubo <tetsui@chromium.org>
    > > Commit-Queue: Prabir Pradhan <prabirmsp@chromium.org>
    > > Auto-Submit: Prabir Pradhan <prabirmsp@chromium.org>
    > > Cr-Commit-Position: refs/heads/master@{#832613}
    >
    > TBR=oshima@chromium.org,tetsui@chromium.org,prabirmsp@chromium.org,chromium-scoped@luci-project-accounts.iam.gserviceaccount.com
    >
    > # Not skipping CQ checks because original CL landed > 1 day ago.
    >
    > Bug: b:153973515
    > Change-Id: I582f775f37c34149fb7f0c2a6b9162b5e72cbf78
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2596065
    > Commit-Queue: Prabir Pradhan <prabirmsp@chromium.org>
    > Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
    > Auto-Submit: Prabir Pradhan <prabirmsp@chromium.org>
    > Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#837908}
    
    TBR=oshima@chromium.org,tetsui@chromium.org,prabirmsp@chromium.org,chromium-scoped@luci-project-accounts.iam.gserviceaccount.com
    
    # Not skipping CQ checks because original CL landed > 1 day ago.
    
    Bug: b:175379280
    Bug: b:175514308
    Bug: b:175829322
    Bug: b:153973515
    Change-Id: I967663e2936a7d117ee2dce9edb8967ce922dd91
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2605465Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
    Reviewed-by: default avatarTetsui Ohkubo <tetsui@chromium.org>
    Commit-Queue: Prabir Pradhan <prabirmsp@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#843233}
    2fb481c0
pointer.cc 29.7 KB