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

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

Issue 2507503002: Use touch events to report stylus events (Closed)
Patch Set: Created 4 years, 1 month 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
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;

Powered by Google App Engine
This is Rietveld 408576698