From ab23715a6fa0dd23cc97a55393b87ce9c235db2d Mon Sep 17 00:00:00 2001 From: Carlos Pizano Date: Wed, 17 Jun 2015 19:46:30 -0700 Subject: [PATCH] Add buttons to WebInputEvent So we can tell l-click from r-click. BUG=none R=abarth@chromium.org Review URL: https://codereview.chromium.org/1192023002. --- viewer/converters/input_event_types.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/viewer/converters/input_event_types.cc b/viewer/converters/input_event_types.cc index e6e1c99a785..92869d2b0dc 100644 --- a/viewer/converters/input_event_types.cc +++ b/viewer/converters/input_event_types.cc @@ -22,7 +22,13 @@ int EventFlagsToWebInputEventModifiers(int flags) { (flags & mojo::EVENT_FLAGS_CAPS_LOCK_DOWN ? blink::WebInputEvent::CapsLockOn : 0) | (flags & mojo::EVENT_FLAGS_ALT_DOWN ? - blink::WebInputEvent::AltKey : 0); + blink::WebInputEvent::AltKey : 0) | + (flags & mojo::EVENT_FLAGS_LEFT_MOUSE_BUTTON ? + blink::WebInputEvent::LeftButtonDown : 0) | + (flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON ? + blink::WebInputEvent::MiddleButtonDown : 0) | + (flags & mojo::EVENT_FLAGS_RIGHT_MOUSE_BUTTON ? + blink::WebInputEvent::RightButtonDown : 0); } int UIEventFlagsToWebInputEventModifiers(int flags) { @@ -66,6 +72,13 @@ scoped_ptr BuildWebPointerEvent( web_event->pointer = event->pointer_data->pointer_id; } else { web_event->kind = blink::WebPointerEvent::Mouse; + // Set the buttons according to http://www.w3.org/TR/pointerevents/ + int buttons = 0; + int modifiers = web_event->modifiers; + buttons |= modifiers & blink::WebInputEvent::LeftButtonDown ? 1 << 0 : 0; + buttons |= modifiers & blink::WebInputEvent::RightButtonDown ? 1 << 1 : 0; + buttons |= modifiers & blink::WebInputEvent::MiddleButtonDown ? 1 << 2 : 0; + web_event->buttons = buttons; } web_event->x = event->pointer_data->x / device_pixel_ratio;