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

Side by Side Diff: ui/events/ozone/evdev/input_injector_evdev.cc

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 4 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ui/events/event.h"
6 #include "ui/events/event_utils.h"
7 #include "ui/events/keycodes/dom/dom_code.h"
8 #include "ui/events/ozone/evdev/cursor_delegate_evdev.h"
9 #include "ui/events/ozone/evdev/device_event_dispatcher_evdev.h"
10 #include "ui/events/ozone/evdev/event_modifiers_evdev.h"
11 #include "ui/events/ozone/evdev/input_injector_evdev.h"
12 #include "ui/events/ozone/evdev/keyboard_evdev.h"
13 #include "ui/events/ozone/evdev/keyboard_util_evdev.h"
14
15 namespace ui {
16
17 namespace {
18
19 const int kDeviceIdForInjection = -1;
20
21 } // namespace
22
23 InputInjectorEvdev::InputInjectorEvdev(
24 scoped_ptr<DeviceEventDispatcherEvdev> dispatcher,
25 CursorDelegateEvdev* cursor)
26 : cursor_(cursor), dispatcher_(dispatcher.Pass()) {
27 }
28
29 InputInjectorEvdev::~InputInjectorEvdev() {
30 }
31
32 void InputInjectorEvdev::InjectMouseButton(EventFlags button, bool down) {
33 unsigned int code;
34 switch (button) {
35 case EF_LEFT_MOUSE_BUTTON:
36 code = BTN_LEFT;
37 break;
38 case EF_RIGHT_MOUSE_BUTTON:
39 code = BTN_RIGHT;
40 break;
41 case EF_MIDDLE_MOUSE_BUTTON:
42 code = BTN_MIDDLE;
43 default:
44 LOG(WARNING) << "Invalid flag: " << button << " for the button parameter";
45 return;
46 }
47
48 dispatcher_->DispatchMouseButtonEvent(MouseButtonEventParams(
49 kDeviceIdForInjection, cursor_->GetLocation(), code, down,
50 false /* allow_remap */, EventTimeForNow()));
51 }
52
53 void InputInjectorEvdev::InjectMouseWheel(int delta_x, int delta_y) {
54 dispatcher_->DispatchMouseWheelEvent(MouseWheelEventParams(
55 kDeviceIdForInjection, cursor_->GetLocation(),
56 gfx::Vector2d(delta_x, delta_y), EventTimeForNow()));
57 }
58
59 void InputInjectorEvdev::MoveCursorTo(const gfx::PointF& location) {
60 if (!cursor_)
61 return;
62
63 cursor_->MoveCursorTo(location);
64
65 dispatcher_->DispatchMouseMoveEvent(MouseMoveEventParams(
66 kDeviceIdForInjection, cursor_->GetLocation(), EventTimeForNow()));
67 }
68
69 void InputInjectorEvdev::InjectKeyEvent(DomCode physical_key,
70 bool down,
71 bool suppress_auto_repeat) {
72 if (physical_key == DomCode::NONE)
73 return;
74
75 int native_keycode = KeycodeConverter::DomCodeToNativeKeycode(physical_key);
76 int evdev_code = NativeCodeToEvdevCode(native_keycode);
77
78 dispatcher_->DispatchKeyEvent(
79 KeyEventParams(kDeviceIdForInjection, evdev_code, down,
80 suppress_auto_repeat, EventTimeForNow()));
81 }
82
83 } // namespace ui
84
OLDNEW
« no previous file with comments | « ui/events/ozone/evdev/input_injector_evdev.h ('k') | ui/events/ozone/evdev/input_injector_evdev_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698