| Index: ui/events/blink/blink_event_util.cc
|
| diff --git a/content/browser/renderer_host/input/web_input_event_util.cc b/ui/events/blink/blink_event_util.cc
|
| similarity index 62%
|
| copy from content/browser/renderer_host/input/web_input_event_util.cc
|
| copy to ui/events/blink/blink_event_util.cc
|
| index 150d83e8ee55a5024ce24dfefe0bba853db8207c..93686887bd27fa09ba1544d3c4df51391546acc6 100644
|
| --- a/content/browser/renderer_host/input/web_input_event_util.cc
|
| +++ b/ui/events/blink/blink_event_util.cc
|
| @@ -1,145 +1,30 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| // MSVC++ requires this to be set before any other includes to get M_PI.
|
| #define _USE_MATH_DEFINES
|
|
|
| -#include "content/browser/renderer_host/input/web_input_event_util.h"
|
| +#include "ui/events/blink/blink_event_util.h"
|
|
|
| #include <cmath>
|
|
|
| -#include "base/strings/string_util.h"
|
| -#include "content/common/input/web_touch_event_traits.h"
|
| +#include "base/time/time.h"
|
| +#include "third_party/WebKit/public/web/WebInputEvent.h"
|
| #include "ui/events/event_constants.h"
|
| #include "ui/events/gesture_detection/gesture_event_data.h"
|
| #include "ui/events/gesture_detection/motion_event.h"
|
| +#include "ui/events/gesture_event_details.h"
|
| #include "ui/gfx/geometry/safe_integer_conversions.h"
|
|
|
| using blink::WebGestureEvent;
|
| using blink::WebInputEvent;
|
| using blink::WebTouchEvent;
|
| using blink::WebTouchPoint;
|
| -using ui::MotionEvent;
|
|
|
| +namespace ui {
|
| namespace {
|
|
|
| -const char* GetKeyIdentifier(ui::KeyboardCode key_code) {
|
| - switch (key_code) {
|
| - case ui::VKEY_MENU:
|
| - return "Alt";
|
| - case ui::VKEY_CONTROL:
|
| - return "Control";
|
| - case ui::VKEY_SHIFT:
|
| - return "Shift";
|
| - case ui::VKEY_CAPITAL:
|
| - return "CapsLock";
|
| - case ui::VKEY_LWIN:
|
| - case ui::VKEY_RWIN:
|
| - return "Win";
|
| - case ui::VKEY_CLEAR:
|
| - return "Clear";
|
| - case ui::VKEY_DOWN:
|
| - return "Down";
|
| - case ui::VKEY_END:
|
| - return "End";
|
| - case ui::VKEY_RETURN:
|
| - return "Enter";
|
| - case ui::VKEY_EXECUTE:
|
| - return "Execute";
|
| - case ui::VKEY_F1:
|
| - return "F1";
|
| - case ui::VKEY_F2:
|
| - return "F2";
|
| - case ui::VKEY_F3:
|
| - return "F3";
|
| - case ui::VKEY_F4:
|
| - return "F4";
|
| - case ui::VKEY_F5:
|
| - return "F5";
|
| - case ui::VKEY_F6:
|
| - return "F6";
|
| - case ui::VKEY_F7:
|
| - return "F7";
|
| - case ui::VKEY_F8:
|
| - return "F8";
|
| - case ui::VKEY_F9:
|
| - return "F9";
|
| - case ui::VKEY_F10:
|
| - return "F10";
|
| - case ui::VKEY_F11:
|
| - return "F11";
|
| - case ui::VKEY_F12:
|
| - return "F12";
|
| - case ui::VKEY_F13:
|
| - return "F13";
|
| - case ui::VKEY_F14:
|
| - return "F14";
|
| - case ui::VKEY_F15:
|
| - return "F15";
|
| - case ui::VKEY_F16:
|
| - return "F16";
|
| - case ui::VKEY_F17:
|
| - return "F17";
|
| - case ui::VKEY_F18:
|
| - return "F18";
|
| - case ui::VKEY_F19:
|
| - return "F19";
|
| - case ui::VKEY_F20:
|
| - return "F20";
|
| - case ui::VKEY_F21:
|
| - return "F21";
|
| - case ui::VKEY_F22:
|
| - return "F22";
|
| - case ui::VKEY_F23:
|
| - return "F23";
|
| - case ui::VKEY_F24:
|
| - return "F24";
|
| - case ui::VKEY_HELP:
|
| - return "Help";
|
| - case ui::VKEY_HOME:
|
| - return "Home";
|
| - case ui::VKEY_INSERT:
|
| - return "Insert";
|
| - case ui::VKEY_LEFT:
|
| - return "Left";
|
| - case ui::VKEY_NEXT:
|
| - return "PageDown";
|
| - case ui::VKEY_PRIOR:
|
| - return "PageUp";
|
| - case ui::VKEY_PAUSE:
|
| - return "Pause";
|
| - case ui::VKEY_SNAPSHOT:
|
| - return "PrintScreen";
|
| - case ui::VKEY_RIGHT:
|
| - return "Right";
|
| - case ui::VKEY_SCROLL:
|
| - return "Scroll";
|
| - case ui::VKEY_SELECT:
|
| - return "Select";
|
| - case ui::VKEY_UP:
|
| - return "Up";
|
| - case ui::VKEY_DELETE:
|
| - return "U+007F"; // Standard says that DEL becomes U+007F.
|
| - case ui::VKEY_MEDIA_NEXT_TRACK:
|
| - return "MediaNextTrack";
|
| - case ui::VKEY_MEDIA_PREV_TRACK:
|
| - return "MediaPreviousTrack";
|
| - case ui::VKEY_MEDIA_STOP:
|
| - return "MediaStop";
|
| - case ui::VKEY_MEDIA_PLAY_PAUSE:
|
| - return "MediaPlayPause";
|
| - case ui::VKEY_VOLUME_MUTE:
|
| - return "VolumeMute";
|
| - case ui::VKEY_VOLUME_DOWN:
|
| - return "VolumeDown";
|
| - case ui::VKEY_VOLUME_UP:
|
| - return "VolumeUp";
|
| - default:
|
| - return NULL;
|
| - };
|
| -}
|
| -
|
| WebInputEvent::Type ToWebInputEventType(MotionEvent::Action action) {
|
| switch (action) {
|
| case MotionEvent::ACTION_DOWN:
|
| @@ -242,25 +127,8 @@ WebTouchPoint CreateWebTouchPoint(const MotionEvent& event,
|
|
|
| } // namespace
|
|
|
| -namespace content {
|
| -
|
| -void UpdateWindowsKeyCodeAndKeyIdentifier(blink::WebKeyboardEvent* event,
|
| - ui::KeyboardCode windows_key_code) {
|
| - event->windowsKeyCode = windows_key_code;
|
| -
|
| - const char* id = GetKeyIdentifier(windows_key_code);
|
| - if (id) {
|
| - base::strlcpy(event->keyIdentifier, id, sizeof(event->keyIdentifier) - 1);
|
| - } else {
|
| - base::snprintf(event->keyIdentifier,
|
| - sizeof(event->keyIdentifier),
|
| - "U+%04X",
|
| - base::ToUpperASCII(static_cast<int>(windows_key_code)));
|
| - }
|
| -}
|
| -
|
| blink::WebTouchEvent CreateWebTouchEventFromMotionEvent(
|
| - const ui::MotionEvent& event,
|
| + const MotionEvent& event,
|
| bool may_cause_scrolling) {
|
| static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) ==
|
| static_cast<int>(blink::WebTouchEvent::touchesLengthCap),
|
| @@ -268,12 +136,11 @@ blink::WebTouchEvent CreateWebTouchEventFromMotionEvent(
|
|
|
| blink::WebTouchEvent result;
|
|
|
| - WebTouchEventTraits::ResetType(
|
| - ToWebInputEventType(event.GetAction()),
|
| + result.type = ToWebInputEventType(event.GetAction());
|
| + result.cancelable = (result.type != WebInputEvent::TouchCancel);
|
| + result.timeStampSeconds =
|
| (event.GetEventTime() - base::TimeTicks()).InSecondsF(),
|
| - &result);
|
| result.causesScrollingIfUncanceled = may_cause_scrolling;
|
| -
|
| result.modifiers = EventFlagsToWebEventModifiers(event.GetFlags());
|
| result.touchesLength =
|
| std::min(event.GetPointerCount(),
|
| @@ -286,7 +153,35 @@ blink::WebTouchEvent CreateWebTouchEventFromMotionEvent(
|
| return result;
|
| }
|
|
|
| -WebGestureEvent CreateWebGestureEvent(const ui::GestureEventDetails& details,
|
| +int EventFlagsToWebEventModifiers(int flags) {
|
| + int modifiers = 0;
|
| +
|
| + if (flags & EF_SHIFT_DOWN)
|
| + modifiers |= blink::WebInputEvent::ShiftKey;
|
| + if (flags & EF_CONTROL_DOWN)
|
| + modifiers |= blink::WebInputEvent::ControlKey;
|
| + if (flags & EF_ALT_DOWN)
|
| + modifiers |= blink::WebInputEvent::AltKey;
|
| + if (flags & EF_COMMAND_DOWN)
|
| + modifiers |= blink::WebInputEvent::MetaKey;
|
| +
|
| + if (flags & EF_LEFT_MOUSE_BUTTON)
|
| + modifiers |= blink::WebInputEvent::LeftButtonDown;
|
| + if (flags & EF_MIDDLE_MOUSE_BUTTON)
|
| + modifiers |= blink::WebInputEvent::MiddleButtonDown;
|
| + if (flags & EF_RIGHT_MOUSE_BUTTON)
|
| + modifiers |= blink::WebInputEvent::RightButtonDown;
|
| + if (flags & EF_CAPS_LOCK_DOWN)
|
| + modifiers |= blink::WebInputEvent::CapsLockOn;
|
| + if (flags & EF_IS_REPEAT)
|
| + modifiers |= blink::WebInputEvent::IsAutoRepeat;
|
| + if (flags & EF_NUMPAD_KEY)
|
| + modifiers |= blink::WebInputEvent::IsKeyPad;
|
| +
|
| + return modifiers;
|
| +}
|
| +
|
| +WebGestureEvent CreateWebGestureEvent(const GestureEventDetails& details,
|
| base::TimeDelta timestamp,
|
| const gfx::PointF& location,
|
| const gfx::PointF& raw_location,
|
| @@ -301,97 +196,97 @@ WebGestureEvent CreateWebGestureEvent(const ui::GestureEventDetails& details,
|
| gesture.sourceDevice = blink::WebGestureDeviceTouchscreen;
|
|
|
| switch (details.type()) {
|
| - case ui::ET_GESTURE_SHOW_PRESS:
|
| + case ET_GESTURE_SHOW_PRESS:
|
| gesture.type = WebInputEvent::GestureShowPress;
|
| gesture.data.showPress.width = details.bounding_box_f().width();
|
| gesture.data.showPress.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_DOUBLE_TAP:
|
| + case ET_GESTURE_DOUBLE_TAP:
|
| gesture.type = WebInputEvent::GestureDoubleTap;
|
| DCHECK_EQ(1, details.tap_count());
|
| gesture.data.tap.tapCount = details.tap_count();
|
| gesture.data.tap.width = details.bounding_box_f().width();
|
| gesture.data.tap.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_TAP:
|
| + case ET_GESTURE_TAP:
|
| gesture.type = WebInputEvent::GestureTap;
|
| DCHECK_GE(details.tap_count(), 1);
|
| gesture.data.tap.tapCount = details.tap_count();
|
| gesture.data.tap.width = details.bounding_box_f().width();
|
| gesture.data.tap.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_TAP_UNCONFIRMED:
|
| + case ET_GESTURE_TAP_UNCONFIRMED:
|
| gesture.type = WebInputEvent::GestureTapUnconfirmed;
|
| DCHECK_EQ(1, details.tap_count());
|
| gesture.data.tap.tapCount = details.tap_count();
|
| gesture.data.tap.width = details.bounding_box_f().width();
|
| gesture.data.tap.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_LONG_PRESS:
|
| + case ET_GESTURE_LONG_PRESS:
|
| gesture.type = WebInputEvent::GestureLongPress;
|
| gesture.data.longPress.width = details.bounding_box_f().width();
|
| gesture.data.longPress.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_LONG_TAP:
|
| + case ET_GESTURE_LONG_TAP:
|
| gesture.type = WebInputEvent::GestureLongTap;
|
| gesture.data.longPress.width = details.bounding_box_f().width();
|
| gesture.data.longPress.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_TWO_FINGER_TAP:
|
| + case ET_GESTURE_TWO_FINGER_TAP:
|
| gesture.type = blink::WebInputEvent::GestureTwoFingerTap;
|
| gesture.data.twoFingerTap.firstFingerWidth = details.first_finger_width();
|
| gesture.data.twoFingerTap.firstFingerHeight =
|
| details.first_finger_height();
|
| break;
|
| - case ui::ET_GESTURE_SCROLL_BEGIN:
|
| + case ET_GESTURE_SCROLL_BEGIN:
|
| gesture.type = WebInputEvent::GestureScrollBegin;
|
| gesture.data.scrollBegin.deltaXHint = details.scroll_x_hint();
|
| gesture.data.scrollBegin.deltaYHint = details.scroll_y_hint();
|
| break;
|
| - case ui::ET_GESTURE_SCROLL_UPDATE:
|
| + case ET_GESTURE_SCROLL_UPDATE:
|
| gesture.type = WebInputEvent::GestureScrollUpdate;
|
| gesture.data.scrollUpdate.deltaX = details.scroll_x();
|
| gesture.data.scrollUpdate.deltaY = details.scroll_y();
|
| gesture.data.scrollUpdate.previousUpdateInSequencePrevented =
|
| details.previous_scroll_update_in_sequence_prevented();
|
| break;
|
| - case ui::ET_GESTURE_SCROLL_END:
|
| + case ET_GESTURE_SCROLL_END:
|
| gesture.type = WebInputEvent::GestureScrollEnd;
|
| break;
|
| - case ui::ET_SCROLL_FLING_START:
|
| + case ET_SCROLL_FLING_START:
|
| gesture.type = WebInputEvent::GestureFlingStart;
|
| gesture.data.flingStart.velocityX = details.velocity_x();
|
| gesture.data.flingStart.velocityY = details.velocity_y();
|
| break;
|
| - case ui::ET_SCROLL_FLING_CANCEL:
|
| + case ET_SCROLL_FLING_CANCEL:
|
| gesture.type = WebInputEvent::GestureFlingCancel;
|
| break;
|
| - case ui::ET_GESTURE_PINCH_BEGIN:
|
| + case ET_GESTURE_PINCH_BEGIN:
|
| gesture.type = WebInputEvent::GesturePinchBegin;
|
| break;
|
| - case ui::ET_GESTURE_PINCH_UPDATE:
|
| + case ET_GESTURE_PINCH_UPDATE:
|
| gesture.type = WebInputEvent::GesturePinchUpdate;
|
| gesture.data.pinchUpdate.scale = details.scale();
|
| break;
|
| - case ui::ET_GESTURE_PINCH_END:
|
| + case ET_GESTURE_PINCH_END:
|
| gesture.type = WebInputEvent::GesturePinchEnd;
|
| break;
|
| - case ui::ET_GESTURE_TAP_CANCEL:
|
| + case ET_GESTURE_TAP_CANCEL:
|
| gesture.type = WebInputEvent::GestureTapCancel;
|
| break;
|
| - case ui::ET_GESTURE_TAP_DOWN:
|
| + case ET_GESTURE_TAP_DOWN:
|
| gesture.type = WebInputEvent::GestureTapDown;
|
| gesture.data.tapDown.width = details.bounding_box_f().width();
|
| gesture.data.tapDown.height = details.bounding_box_f().height();
|
| break;
|
| - case ui::ET_GESTURE_BEGIN:
|
| - case ui::ET_GESTURE_END:
|
| - case ui::ET_GESTURE_SWIPE:
|
| + case ET_GESTURE_BEGIN:
|
| + case ET_GESTURE_END:
|
| + case ET_GESTURE_SWIPE:
|
| // The caller is responsible for discarding these gestures appropriately.
|
| gesture.type = WebInputEvent::Undefined;
|
| break;
|
| default:
|
| - NOTREACHED() << "ui::EventType provided wasn't a valid gesture event: "
|
| + NOTREACHED() << "EventType provided wasn't a valid gesture event: "
|
| << details.type();
|
| }
|
|
|
| @@ -399,68 +294,10 @@ WebGestureEvent CreateWebGestureEvent(const ui::GestureEventDetails& details,
|
| }
|
|
|
| WebGestureEvent CreateWebGestureEventFromGestureEventData(
|
| - const ui::GestureEventData& data) {
|
| - return CreateWebGestureEvent(data.details,
|
| - data.time - base::TimeTicks(),
|
| + const GestureEventData& data) {
|
| + return CreateWebGestureEvent(data.details, data.time - base::TimeTicks(),
|
| gfx::PointF(data.x, data.y),
|
| - gfx::PointF(data.raw_x, data.raw_y),
|
| - data.flags);
|
| -}
|
| -
|
| -int EventFlagsToWebEventModifiers(int flags) {
|
| - int modifiers = 0;
|
| -
|
| - if (flags & ui::EF_SHIFT_DOWN)
|
| - modifiers |= blink::WebInputEvent::ShiftKey;
|
| - if (flags & ui::EF_CONTROL_DOWN)
|
| - modifiers |= blink::WebInputEvent::ControlKey;
|
| - if (flags & ui::EF_ALT_DOWN)
|
| - modifiers |= blink::WebInputEvent::AltKey;
|
| - if (flags & ui::EF_COMMAND_DOWN)
|
| - modifiers |= blink::WebInputEvent::MetaKey;
|
| -
|
| - if (flags & ui::EF_LEFT_MOUSE_BUTTON)
|
| - modifiers |= blink::WebInputEvent::LeftButtonDown;
|
| - if (flags & ui::EF_MIDDLE_MOUSE_BUTTON)
|
| - modifiers |= blink::WebInputEvent::MiddleButtonDown;
|
| - if (flags & ui::EF_RIGHT_MOUSE_BUTTON)
|
| - modifiers |= blink::WebInputEvent::RightButtonDown;
|
| - if (flags & ui::EF_CAPS_LOCK_DOWN)
|
| - modifiers |= blink::WebInputEvent::CapsLockOn;
|
| - if (flags & ui::EF_IS_REPEAT)
|
| - modifiers |= blink::WebInputEvent::IsAutoRepeat;
|
| - if (flags & ui::EF_NUMPAD_KEY)
|
| - modifiers |= blink::WebInputEvent::IsKeyPad;
|
| -
|
| - return modifiers;
|
| -}
|
| -
|
| -int WebEventModifiersToEventFlags(int modifiers) {
|
| - int flags = 0;
|
| -
|
| - if (modifiers & blink::WebInputEvent::ShiftKey)
|
| - flags |= ui::EF_SHIFT_DOWN;
|
| - if (modifiers & blink::WebInputEvent::ControlKey)
|
| - flags |= ui::EF_CONTROL_DOWN;
|
| - if (modifiers & blink::WebInputEvent::AltKey)
|
| - flags |= ui::EF_ALT_DOWN;
|
| - if (modifiers & blink::WebInputEvent::MetaKey)
|
| - flags |= ui::EF_COMMAND_DOWN;
|
| -
|
| - if (modifiers & blink::WebInputEvent::LeftButtonDown)
|
| - flags |= ui::EF_LEFT_MOUSE_BUTTON;
|
| - if (modifiers & blink::WebInputEvent::MiddleButtonDown)
|
| - flags |= ui::EF_MIDDLE_MOUSE_BUTTON;
|
| - if (modifiers & blink::WebInputEvent::RightButtonDown)
|
| - flags |= ui::EF_RIGHT_MOUSE_BUTTON;
|
| - if (modifiers & blink::WebInputEvent::CapsLockOn)
|
| - flags |= ui::EF_CAPS_LOCK_DOWN;
|
| - if (modifiers & blink::WebInputEvent::IsAutoRepeat)
|
| - flags |= ui::EF_IS_REPEAT;
|
| - if (modifiers & blink::WebInputEvent::IsKeyPad)
|
| - flags |= ui::EF_NUMPAD_KEY;
|
| -
|
| - return flags;
|
| + gfx::PointF(data.raw_x, data.raw_y), data.flags);
|
| }
|
|
|
| -} // namespace content
|
| +} // namespace ui
|
|
|