Chromium Code Reviews| 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; |