OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/converters/input_events/input_events_type_converters.h" | 5 #include "mojo/converters/input_events/input_events_type_converters.h" |
6 | 6 |
7 #if defined(USE_X11) | 7 #if defined(USE_X11) |
8 #include <X11/extensions/XInput2.h> | 8 #include <X11/extensions/XInput2.h> |
9 #include <X11/Xlib.h> | 9 #include <X11/Xlib.h> |
10 #endif | 10 #endif |
11 | 11 |
12 #include "mojo/converters/geometry/geometry_type_converters.h" | 12 #include "mojo/converters/geometry/geometry_type_converters.h" |
13 #include "mojo/converters/input_events/mojo_extended_key_event_data.h" | 13 #include "mojo/converters/input_events/mojo_extended_key_event_data.h" |
14 #include "ui/events/event_utils.h" | 14 #include "ui/events/event_utils.h" |
| 15 #include "ui/events/keycodes/dom/keycode_converter.h" |
15 #include "ui/events/keycodes/keyboard_codes.h" | 16 #include "ui/events/keycodes/keyboard_codes.h" |
16 #include "ui/mojo/events/input_events.mojom.h" | 17 #include "ui/mojo/events/input_events.mojom.h" |
17 | 18 |
18 namespace mojo { | 19 namespace mojo { |
19 namespace { | 20 namespace { |
20 | 21 |
21 ui::EventType MojoMouseEventTypeToUIEvent(const EventPtr& event) { | 22 ui::EventType MojoMouseEventTypeToUIEvent(const EventPtr& event) { |
22 DCHECK(!event->pointer_data.is_null()); | 23 DCHECK(!event->pointer_data.is_null()); |
23 DCHECK_EQ(POINTER_KIND_MOUSE, event->pointer_data->kind); | 24 DCHECK_EQ(POINTER_KIND_MOUSE, event->pointer_data->kind); |
24 switch (event->action) { | 25 switch (event->action) { |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 SetPointerDataLocationFromEvent(*touch_event, pointer_data.get()); | 196 SetPointerDataLocationFromEvent(*touch_event, pointer_data.get()); |
196 pointer_data->radius_major = touch_event->pointer_details().radius_x(); | 197 pointer_data->radius_major = touch_event->pointer_details().radius_x(); |
197 pointer_data->radius_minor = touch_event->pointer_details().radius_y(); | 198 pointer_data->radius_minor = touch_event->pointer_details().radius_y(); |
198 pointer_data->pressure = touch_event->pointer_details().force(); | 199 pointer_data->pressure = touch_event->pointer_details().force(); |
199 pointer_data->orientation = touch_event->rotation_angle(); | 200 pointer_data->orientation = touch_event->rotation_angle(); |
200 event->pointer_data = pointer_data.Pass(); | 201 event->pointer_data = pointer_data.Pass(); |
201 } else if (input.IsKeyEvent()) { | 202 } else if (input.IsKeyEvent()) { |
202 const ui::KeyEvent* key_event = static_cast<const ui::KeyEvent*>(&input); | 203 const ui::KeyEvent* key_event = static_cast<const ui::KeyEvent*>(&input); |
203 KeyDataPtr key_data(KeyData::New()); | 204 KeyDataPtr key_data(KeyData::New()); |
204 key_data->key_code = key_event->GetConflatedWindowsKeyCode(); | 205 key_data->key_code = key_event->GetConflatedWindowsKeyCode(); |
205 key_data->native_key_code = key_event->platform_keycode(); | 206 key_data->native_key_code = |
| 207 ui::KeycodeConverter::DomCodeToNativeKeycode(key_event->code()); |
206 key_data->is_char = key_event->is_char(); | 208 key_data->is_char = key_event->is_char(); |
207 key_data->character = key_event->GetCharacter(); | 209 key_data->character = key_event->GetCharacter(); |
208 | 210 |
209 if (key_event->extended_key_event_data()) { | 211 if (key_event->extended_key_event_data()) { |
210 const MojoExtendedKeyEventData* data = | 212 const MojoExtendedKeyEventData* data = |
211 static_cast<const MojoExtendedKeyEventData*>( | 213 static_cast<const MojoExtendedKeyEventData*>( |
212 key_event->extended_key_event_data()); | 214 key_event->extended_key_event_data()); |
213 key_data->windows_key_code = static_cast<mojo::KeyboardCode>( | 215 key_data->windows_key_code = static_cast<mojo::KeyboardCode>( |
214 data->windows_key_code()); | 216 data->windows_key_code()); |
215 key_data->text = data->text(); | 217 key_data->text = data->text(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 : ui::ET_KEY_RELEASED, | 260 : ui::ET_KEY_RELEASED, |
259 | 261 |
260 static_cast<ui::KeyboardCode>(input->key_data->key_code), | 262 static_cast<ui::KeyboardCode>(input->key_data->key_code), |
261 input->flags)); | 263 input->flags)); |
262 } | 264 } |
263 key_event->SetExtendedKeyEventData(scoped_ptr<ui::ExtendedKeyEventData>( | 265 key_event->SetExtendedKeyEventData(scoped_ptr<ui::ExtendedKeyEventData>( |
264 new MojoExtendedKeyEventData( | 266 new MojoExtendedKeyEventData( |
265 static_cast<int32_t>(input->key_data->windows_key_code), | 267 static_cast<int32_t>(input->key_data->windows_key_code), |
266 input->key_data->text, | 268 input->key_data->text, |
267 input->key_data->unmodified_text))); | 269 input->key_data->unmodified_text))); |
268 key_event->set_platform_keycode(input->key_data->native_key_code); | |
269 return key_event.Pass(); | 270 return key_event.Pass(); |
270 } | 271 } |
271 case EVENT_TYPE_POINTER_DOWN: | 272 case EVENT_TYPE_POINTER_DOWN: |
272 case EVENT_TYPE_POINTER_UP: | 273 case EVENT_TYPE_POINTER_UP: |
273 case EVENT_TYPE_POINTER_MOVE: | 274 case EVENT_TYPE_POINTER_MOVE: |
274 case EVENT_TYPE_POINTER_CANCEL: { | 275 case EVENT_TYPE_POINTER_CANCEL: { |
275 if (input->pointer_data->kind == POINTER_KIND_MOUSE) { | 276 if (input->pointer_data->kind == POINTER_KIND_MOUSE) { |
276 // TODO: last flags isn't right. Need to send changed_flags. | 277 // TODO: last flags isn't right. Need to send changed_flags. |
277 scoped_ptr<ui::MouseEvent> event(new ui::MouseEvent( | 278 scoped_ptr<ui::MouseEvent> event(new ui::MouseEvent( |
278 MojoMouseEventTypeToUIEvent(input), location, screen_location, | 279 MojoMouseEventTypeToUIEvent(input), location, screen_location, |
(...skipping 20 matching lines...) Expand all Loading... |
299 return touch_event.Pass(); | 300 return touch_event.Pass(); |
300 } | 301 } |
301 default: | 302 default: |
302 NOTIMPLEMENTED(); | 303 NOTIMPLEMENTED(); |
303 } | 304 } |
304 // TODO: need to support time_stamp. | 305 // TODO: need to support time_stamp. |
305 return nullptr; | 306 return nullptr; |
306 } | 307 } |
307 | 308 |
308 } // namespace mojo | 309 } // namespace mojo |
OLD | NEW |