Pixelbook touch radii are flipped making tall/skinny contact areas look idential to wide/flat ones |
|||
Issue descriptionChrome Version : 70.0.3538.58 OS Version: 11021.45.0 URLs (if applicable) : https://rbyers.github.io/paint.html What steps will reproduce the problem? 1. Touch with a horizontal thumb 2. See you get a nice ellipse that approximates the contact area - sweet! 3. Rotate your thumb so that the contact area is tall and skinny 4. Touch again What is the expected result? A pointer event where the height is larger than the width. Or possibly a touch event with a non-zero rotation radius. What happens instead of that? Pointer and touch events indicating a wide contact (i.e. width/height flipped from what it should be). dtapuska says he thinks he's seen some code which chooses the larger as the radiusX and the smaller as the radiusY. If the driver is really incapable of knowing the orientation, perhaps it would be better to report only circular contact areas (perhaps as the mean of the two known radii?)?
,
Oct 16
Thanks, but I don't think getting 0 for one of the radii can be the issue here or, according to that code, we'd see circular results. Right?
,
Oct 16
,
Oct 16
Yeah, that looks possible. In my testing with rbyers.net/eventTest.html I was seeing 0° TouchEvent rotationAngle in all cases, but perhaps the rotation angle is getting dropped somewhere downstream of that function?
,
Oct 16
Looks like motion_event_generic is getting wrong values here. For a "vertical" thumb, it is correctly doing this conversion: (rx=17.359, ry=11.5727, deg=0) -> (major=34.718, minor=23.1454, orientation=-1.5708)
,
Oct 16
Confirmed it's a low-level issue: ui/events/event.cc also received radius_x > radius_y. adlr@?
,
Oct 16
|
|||
►
Sign in to add a comment |
|||
Comment 1 by dtapu...@chromium.org
, Oct 16