| Index: content/renderer/pepper/event_conversion.cc
|
| diff --git a/content/renderer/pepper/event_conversion.cc b/content/renderer/pepper/event_conversion.cc
|
| index 20e1ce8e4b47a8f4f11f00accec64a1cab5e7afe..36cd4b7137ff8e99061f8be73f79b6b583bc3f12 100644
|
| --- a/content/renderer/pepper/event_conversion.cc
|
| +++ b/content/renderer/pepper/event_conversion.cc
|
| @@ -119,6 +119,22 @@ PP_InputEvent_Type ConvertEventTypes(WebInputEvent::Type wetype) {
|
| }
|
| }
|
|
|
| +// Converts WebInputEvent::Modifiers flags to PP_InputEvent_Modifier.
|
| +int ConvertEventModifiers(int modifiers) {
|
| + return modifiers & (PP_INPUTEVENT_MODIFIER_CONTROLKEY |
|
| + PP_INPUTEVENT_MODIFIER_ALTKEY |
|
| + PP_INPUTEVENT_MODIFIER_METAKEY |
|
| + PP_INPUTEVENT_MODIFIER_ISKEYPAD |
|
| + PP_INPUTEVENT_MODIFIER_ISAUTOREPEAT |
|
| + PP_INPUTEVENT_MODIFIER_LEFTBUTTONDOWN |
|
| + PP_INPUTEVENT_MODIFIER_MIDDLEBUTTONDOWN |
|
| + PP_INPUTEVENT_MODIFIER_RIGHTBUTTONDOWN |
|
| + PP_INPUTEVENT_MODIFIER_CAPSLOCKKEY |
|
| + PP_INPUTEVENT_MODIFIER_NUMLOCKKEY |
|
| + PP_INPUTEVENT_MODIFIER_ISLEFT |
|
| + PP_INPUTEVENT_MODIFIER_ISRIGHT);
|
| +}
|
| +
|
| // Generates a PP_InputEvent with the fields common to all events, as well as
|
| // the event type from the given web event. Event-specific fields will be zero
|
| // initialized.
|
| @@ -134,7 +150,7 @@ void AppendKeyEvent(const WebInputEvent& event,
|
| const WebKeyboardEvent& key_event =
|
| static_cast<const WebKeyboardEvent&>(event);
|
| InputEventData result = GetEventWithCommonFieldsAndType(event);
|
| - result.event_modifiers = key_event.modifiers;
|
| + result.event_modifiers = ConvertEventModifiers(key_event.modifiers);
|
| result.key_code = key_event.windowsKeyCode;
|
| result.code = ui::KeycodeConverter::DomCodeToCodeString(
|
| static_cast<ui::DomCode>(key_event.domCode));
|
| @@ -161,7 +177,7 @@ void AppendCharEvent(const WebInputEvent& event,
|
| base::i18n::UTF16CharIterator iter(key_event.text, utf16_char_count);
|
| while (!iter.end()) {
|
| InputEventData result = GetEventWithCommonFieldsAndType(event);
|
| - result.event_modifiers = key_event.modifiers;
|
| + result.event_modifiers = ConvertEventModifiers(key_event.modifiers);
|
| base::WriteUnicodeCharacter(iter.get(), &result.character_text);
|
|
|
| result_events->push_back(result);
|
| @@ -186,7 +202,14 @@ void AppendMouseEvent(const WebInputEvent& event,
|
|
|
| const WebMouseEvent& mouse_event = static_cast<const WebMouseEvent&>(event);
|
| InputEventData result = GetEventWithCommonFieldsAndType(event);
|
| - result.event_modifiers = mouse_event.modifiers;
|
| + result.event_modifiers = ConvertEventModifiers(mouse_event.modifiers);
|
| + if (mouse_event.pointerType ==
|
| + blink::WebPointerProperties::PointerType::Pen) {
|
| + result.event_modifiers |= PP_INPUTEVENT_MODIFIER_ISPEN;
|
| + } else if (mouse_event.pointerType ==
|
| + blink::WebPointerProperties::PointerType::Eraser) {
|
| + result.event_modifiers |= PP_INPUTEVENT_MODIFIER_ISERASER;
|
| + }
|
| if (mouse_event.type == WebInputEvent::MouseDown ||
|
| mouse_event.type == WebInputEvent::MouseMove ||
|
| mouse_event.type == WebInputEvent::MouseUp) {
|
| @@ -206,7 +229,7 @@ void AppendMouseWheelEvent(const WebInputEvent& event,
|
| const WebMouseWheelEvent& mouse_wheel_event =
|
| static_cast<const WebMouseWheelEvent&>(event);
|
| InputEventData result = GetEventWithCommonFieldsAndType(event);
|
| - result.event_modifiers = mouse_wheel_event.modifiers;
|
| + result.event_modifiers = ConvertEventModifiers(mouse_wheel_event.modifiers);
|
| result.wheel_delta.x = mouse_wheel_event.deltaX;
|
| result.wheel_delta.y = mouse_wheel_event.deltaY;
|
| result.wheel_ticks.x = mouse_wheel_event.wheelTicksX;
|
|
|