New issue
Advanced search Search tips

Issue 873763 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 841020



Sign in to add a comment

ws: Touch events on bottom/right of screen not sent to client windows.

Project Member Reported by msw@chromium.org, Aug 13

Issue description

ws: Touch events on bottom/right of screen not sent to client windows.

On ToT #582215 linux-chromeos builds (or similar on device)
(1) Run chrome --touch-devices=ID --ash-touch-hud (get ID from "xinput list")
(2) Open the KSV app window (Ctrl-Alt-/)
(3) Move the window to the right side of the screen (or bottom side)
(4) Try to touch the content on the right side of the screen (or bottom side)
Expected: Touches work as expected.
Actual: Touches on the right side of the screen (or bottom side) do nothing.

This only affects the DesktopWindowTreeHostMus::content_window, not the frame (client root).
Perhaps the top-left region where touches work is about the size of the window (800x512)?
 
Owner: msw@chromium.org
Status: Started (was: Available)
I'll take a look.
The further right the window is placed, the less of the window is touchable.
(but there's no fixed position in screen space for different window positions)
Mouse events seem unaffected, so this is some kind of touch-specific logic.

Commenting out this block of code seems to resolve the issue, I'll look closer:
https://cs.chromium.org/chromium/src/ui/aura/window_targeter.cc?l=116-136
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/85b33aeead03e03830689494b2f2aec6a4acc600

commit 85b33aeead03e03830689494b2f2aec6a4acc600
Author: Mike Wasserman <msw@chromium.org>
Date: Thu Aug 16 01:40:48 2018

ws: Fix WindowTargeter touch event location check

Use event.location() + ScreenPosition client in FindTargetInRootWindow:
 - location() is in |root_window| coordinates for the ws and clients
 - root_location() is *not* in |root_window| coordinates for clients:
   - |root_window| is the client-root (the top-level client app window)
   - root_location() is Ash's display-root coords (full display bounds)

Add a WindowTreeTest for event locations and root locations.
Add a WindowTargeterTest for FindTargetInRootWindow and regressions.

Bug:  873763 ,  793916 
Test: KSV (Ctrl-Alt-/), Arc, Mash, 2nd display, etc. touch input works.
Change-Id: I7ae541203181f9fc5c65449a10ca927f90d29d96
Reviewed-on: https://chromium-review.googlesource.com/1176462
Commit-Queue: Michael Wasserman <msw@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583488}
[modify] https://crrev.com/85b33aeead03e03830689494b2f2aec6a4acc600/services/ui/ws2/window_tree_unittest.cc
[modify] https://crrev.com/85b33aeead03e03830689494b2f2aec6a4acc600/ui/aura/window_targeter.cc
[modify] https://crrev.com/85b33aeead03e03830689494b2f2aec6a4acc600/ui/aura/window_targeter_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment