diff options
| author | 2022-02-24 09:08:54 -0800 | |
|---|---|---|
| committer | 2022-02-24 11:32:56 -0800 | |
| commit | 890532e49c0e329c0c462fb2733c5ae27a395b7b (patch) | |
| tree | 6af6ad8245aa25ece27d63ed8f7ecaab0bb1eeee /libs/gui/ConsumerBase.cpp | |
| parent | c53c10eca5a0af0b4754fbda87fb02697e67ea4e (diff) | |
Fix input injection with zero coords
In the native MotionEvent class, setting an axis value to 0 is
equivalent to removing the axis from the bitfield of valid axes. This is
because getting an axis value that is not set in the bitfield will
return 0 by default.
This means that we cannot rely on the bitfield of valid axes to know
exactly which axes are valid, since all axes are always valid with a
default value of 0.
Rather than transforming only the axies that are set in the bitfield, we
add a helper function to MotionEvent to transform the entire
PointerCoords.
Bug: 219711163
Test: manual, see bug: adb shell input draganddrop 665 531 0 531 1000
Change-Id: I335beebf8263a38f180f2f4c6a788fbd69d15a6f
Diffstat (limited to 'libs/gui/ConsumerBase.cpp')
0 files changed, 0 insertions, 0 deletions