summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordnicoara <dnicoara@chromium.org>2014-10-28 09:36:54 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-28 16:37:24 +0000
commit210bb34731d9f1980b934eca58aa818980c15a4c (patch)
treeb93a355cd36d34c1c921dd17c953709c64be02fd
parent00ba6e8fb1f4c7ed816565f8cafce2930b7e30fe (diff)
downloadchromium_src-210bb34731d9f1980b934eca58aa818980c15a4c.zip
chromium_src-210bb34731d9f1980b934eca58aa818980c15a4c.tar.gz
chromium_src-210bb34731d9f1980b934eca58aa818980c15a4c.tar.bz2
[Ozone] Set the ID of the device generating the touch event
This allows identifying the device generating the event. In a future patch this will allow properly routing of touch events to the correct platform window. BUG=none Review URL: https://codereview.chromium.org/628693002 Cr-Commit-Position: refs/heads/master@{#301645}
-rw-r--r--ui/events/event.h1
-rw-r--r--ui/events/ozone/evdev/touch_event_converter_evdev.cc6
2 files changed, 5 insertions, 2 deletions
diff --git a/ui/events/event.h b/ui/events/event.h
index d774897..56fd74c 100644
--- a/ui/events/event.h
+++ b/ui/events/event.h
@@ -73,6 +73,7 @@ class EVENTS_EXPORT Event {
void set_latency(const LatencyInfo& latency) { latency_ = latency; }
int source_device_id() const { return source_device_id_; }
+ void set_source_device_id(int id) { source_device_id_ = id; }
// By default, events are "cancelable", this means any default processing that
// the containing abstraction layer may perform can be prevented by calling
diff --git a/ui/events/ozone/evdev/touch_event_converter_evdev.cc b/ui/events/ozone/evdev/touch_event_converter_evdev.cc
index ef087a1..797a5a1 100644
--- a/ui/events/ozone/evdev/touch_event_converter_evdev.cc
+++ b/ui/events/ozone/evdev/touch_event_converter_evdev.cc
@@ -304,7 +304,7 @@ void TouchEventConverterEvdev::ReportEvents(base::TimeDelta delta) {
for (int i = 0; i < MAX_FINGERS; i++) {
if (altered_slots_[i]) {
// TODO(rikroege): Support elliptical finger regions.
- callback_.Run(make_scoped_ptr(
+ scoped_ptr<TouchEvent> event(
new TouchEvent(events_[i].type_,
gfx::PointF(events_[i].x_, events_[i].y_),
/* flags */ 0,
@@ -313,7 +313,9 @@ void TouchEventConverterEvdev::ReportEvents(base::TimeDelta delta) {
/* radius_x */ events_[i].radius_x_,
/* radius_y */ events_[i].radius_y_,
/* angle */ 0.,
- events_[i].pressure_)));
+ events_[i].pressure_));
+ event->set_source_device_id(id_);
+ callback_.Run(event.Pass());
// Subsequent events for this finger will be touch-move until it
// is released.