diff options
author | 2012-12-10 10:19:58 +0400 | |
---|---|---|
committer | 2013-01-30 10:15:00 +0000 | |
commit | 716f7b3f5e29adedf1cd5c11529d9cfd82246897 (patch) | |
tree | 4e38b37b38069168d527b9224bd5598ea762b7f9 /libs/androidfw/Input.cpp | |
parent | 7ad885e2e6c845dbec4f16cd71e859240741dbf9 (diff) |
Fix PointerCoords Parcel incorrectly storing values as Int32
PointerCoords stores its values as float and its Parcel should
do the same. Wrong behaviour may be noticed when MotionEvent is
injected using Instrumentation method sendPointerSync. All its
PointerCoords values(size, orientation, pressure, etc) will be
casted to integer omitting their decimal part. This fix addresses
this issue.
Change-Id: Ifa3dfce4d5c2e6c060852f4208cb5684e827c7e6
Signed-off-by: Ilya Polenov <daioptych@gmail.com>
Diffstat (limited to 'libs/androidfw/Input.cpp')
-rw-r--r-- | libs/androidfw/Input.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/androidfw/Input.cpp b/libs/androidfw/Input.cpp index 97b0ec127b59..05b62bbb831f 100644 --- a/libs/androidfw/Input.cpp +++ b/libs/androidfw/Input.cpp @@ -221,7 +221,7 @@ status_t PointerCoords::readFromParcel(Parcel* parcel) { } for (uint32_t i = 0; i < count; i++) { - values[i] = parcel->readInt32(); + values[i] = parcel->readFloat(); } return OK; } @@ -231,7 +231,7 @@ status_t PointerCoords::writeToParcel(Parcel* parcel) const { uint32_t count = __builtin_popcountll(bits); for (uint32_t i = 0; i < count; i++) { - parcel->writeInt32(values[i]); + parcel->writeFloat(values[i]); } return OK; } |