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 98483d30df2094fc1077b08478f638a06dcc4f01..ad10265487f5f1321a98d7dc27341661d8470319 100644 |
--- a/ui/events/ozone/evdev/touch_event_converter_evdev.cc |
+++ b/ui/events/ozone/evdev/touch_event_converter_evdev.cc |
@@ -328,7 +328,7 @@ void TouchEventConverterEvdev::EmulateMultitouchEvent( |
if (emulated_event.code >= 0) |
ProcessMultitouchEvent(emulated_event); |
} else if (event.type == EV_KEY) { |
- if (event.code == BTN_TOUCH || |
+ if (event.code == BTN_TOUCH || event.code == BTN_0 || |
(quirk_left_mouse_button_ && event.code == BTN_LEFT)) { |
emulated_event.type = EV_ABS; |
emulated_event.code = ABS_MT_TRACKING_ID; |
@@ -357,11 +357,6 @@ void TouchEventConverterEvdev::ProcessKey(const input_event& input) { |
break; |
case BTN_TOOL_PEN: |
case BTN_TOOL_RUBBER: |
- // Do not change tool types while touching to prevent inconsistencies |
- // from switching between Mouse and TouchEvents. |
- if (events_[current_slot_].was_touching) |
- break; |
- |
if (input.value > 0) { |
events_[current_slot_].tool_code = input.code; |
} else { |
@@ -455,28 +450,11 @@ void TouchEventConverterEvdev::ReportTouchEvent( |
GetEventPointerDetails(event), timestamp)); |
} |
-void TouchEventConverterEvdev::ReportStylusEvent( |
- const InProgressTouchEvdev& event, |
- base::TimeTicks timestamp) { |
- if (event.btn_left.changed) |
- ReportButton(BTN_LEFT, event.btn_left.down, event, timestamp); |
- if (event.btn_right.changed) |
- ReportButton(BTN_RIGHT, event.btn_right.down, event, timestamp); |
- if (event.btn_middle.changed) |
- ReportButton(BTN_MIDDLE, event.btn_middle.down, event, timestamp); |
- |
- dispatcher_->DispatchMouseMoveEvent(MouseMoveEventParams( |
- input_device_.id, EF_DIRECT_INPUT, gfx::PointF(event.x, event.y), |
- GetEventPointerDetails(event), timestamp)); |
-} |
- |
void TouchEventConverterEvdev::ReportButton(unsigned int button, |
bool down, |
const InProgressTouchEvdev& event, |
base::TimeTicks timestamp) { |
- dispatcher_->DispatchMouseButtonEvent(MouseButtonEventParams( |
- input_device_.id, EF_DIRECT_INPUT, gfx::PointF(event.x, event.y), button, |
- down, false /* allow_remap */, GetEventPointerDetails(event), timestamp)); |
+ // todo(denniskempin): Report buttons via pointer events |
spang
2016/11/17 18:36:17
All caps - TODO()
|
} |
void TouchEventConverterEvdev::ReportEvents(base::TimeTicks timestamp) { |
@@ -499,13 +477,16 @@ void TouchEventConverterEvdev::ReportEvents(base::TimeTicks timestamp) { |
if (touch_noise_finder_ && touch_noise_finder_->SlotHasNoise(event->slot)) |
event->cancelled = true; |
- if (event->tool_code > 0) { |
- ReportStylusEvent(*event, timestamp); |
- } else { |
- EventType event_type = GetEventTypeForTouch(*event); |
- if (event_type != ET_UNKNOWN) |
- ReportTouchEvent(*event, event_type, timestamp); |
- } |
+ if (event->btn_left.changed) |
+ ReportButton(BTN_LEFT, event->btn_left.down, *event, timestamp); |
spang
2016/11/17 18:36:17
This doesn't seem right to me, even considering th
|
+ if (event->btn_right.changed) |
+ ReportButton(BTN_RIGHT, event->btn_right.down, *event, timestamp); |
+ if (event->btn_middle.changed) |
+ ReportButton(BTN_MIDDLE, event->btn_middle.down, *event, timestamp); |
+ |
+ EventType event_type = GetEventTypeForTouch(*event); |
+ if (event_type != ET_UNKNOWN) |
+ ReportTouchEvent(*event, event_type, timestamp); |
event->was_cancelled = event->cancelled; |
event->was_touching = event->touching; |