Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Unified Diff: ui/events/ozone/evdev/touch_event_converter_evdev.cc

Issue 674523003: Reland of [Ozone] Properly initialize multitouch slot values (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/ozone/evdev/touch_event_converter_evdev.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/touch_event_converter_evdev.cc
diff --git a/ui/events/ozone/evdev/touch_event_converter_evdev.cc b/ui/events/ozone/evdev/touch_event_converter_evdev.cc
index c3fc7e2c275166e4d12f0c0fc69120ad335b3670..ef087a1a6534a0551dbca7ffc4c60e3eaf56def7 100644
--- a/ui/events/ozone/evdev/touch_event_converter_evdev.cc
+++ b/ui/events/ozone/evdev/touch_event_converter_evdev.cc
@@ -72,6 +72,17 @@ float TuxelToPixelSize(float val, float num_tuxels, float num_pixels) {
namespace ui {
+TouchEventConverterEvdev::InProgressEvents::InProgressEvents()
+ : x_(0),
+ y_(0),
+ id_(-1),
+ finger_(-1),
+ type_(ET_UNKNOWN),
+ radius_x_(0),
+ radius_y_(0),
+ pressure_(0) {
+}
+
TouchEventConverterEvdev::TouchEventConverterEvdev(
int fd,
base::FilePath path,
@@ -129,6 +140,19 @@ void TouchEventConverterEvdev::Init(const EventDeviceInfo& info) {
cal.bezel_right,
cal.bezel_top,
cal.bezel_bottom);
+
+ for (int i = 0;
+ i < std::min<int>(info.GetAbsMaximum(ABS_MT_SLOT) + 1, MAX_FINGERS);
+ ++i) {
+ events_[i].finger_ = info.GetSlotValue(ABS_MT_TRACKING_ID, i);
+ events_[i].type_ =
+ events_[i].finger_ < 0 ? ET_TOUCH_RELEASED : ET_TOUCH_PRESSED;
+ events_[i].x_ = info.GetSlotValue(ABS_MT_POSITION_X, i);
+ events_[i].y_ = info.GetSlotValue(ABS_MT_POSITION_Y, i);
+ events_[i].radius_x_ = info.GetSlotValue(ABS_MT_TOUCH_MAJOR, i);
+ events_[i].radius_y_ = info.GetSlotValue(ABS_MT_TOUCH_MINOR, i);
+ events_[i].pressure_ = info.GetSlotValue(ABS_MT_PRESSURE, i);
+ }
}
bool TouchEventConverterEvdev::Reinitialize() {
« no previous file with comments | « ui/events/ozone/evdev/touch_event_converter_evdev.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698