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 "ui/events/ozone/evdev/keyboard_evdev.h" | 5 #include "ui/events/ozone/evdev/keyboard_evdev.h" |
6 | 6 |
7 #include "base/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
8 #include "base/threading/thread_task_runner_handle.h" | 8 #include "base/threading/thread_task_runner_handle.h" |
9 #include "ui/events/event.h" | 9 #include "ui/events/event.h" |
10 #include "ui/events/event_constants.h" | 10 #include "ui/events/event_constants.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 repeat_delay_ = base::TimeDelta::FromMilliseconds(kRepeatDelayMs); | 67 repeat_delay_ = base::TimeDelta::FromMilliseconds(kRepeatDelayMs); |
68 repeat_interval_ = base::TimeDelta::FromMilliseconds(kRepeatIntervalMs); | 68 repeat_interval_ = base::TimeDelta::FromMilliseconds(kRepeatIntervalMs); |
69 } | 69 } |
70 | 70 |
71 KeyboardEvdev::~KeyboardEvdev() { | 71 KeyboardEvdev::~KeyboardEvdev() { |
72 } | 72 } |
73 | 73 |
74 void KeyboardEvdev::OnKeyChange(unsigned int key, | 74 void KeyboardEvdev::OnKeyChange(unsigned int key, |
75 bool down, | 75 bool down, |
76 bool suppress_auto_repeat, | 76 bool suppress_auto_repeat, |
77 base::TimeDelta timestamp, | 77 base::TimeTicks timestamp, |
78 int device_id) { | 78 int device_id) { |
79 if (key > KEY_MAX) | 79 if (key > KEY_MAX) |
80 return; | 80 return; |
81 | 81 |
82 bool was_down = key_state_.test(key); | 82 bool was_down = key_state_.test(key); |
83 bool is_repeat = down && was_down; | 83 bool is_repeat = down && was_down; |
84 if (!down && !was_down) | 84 if (!down && !was_down) |
85 return; // Key already released. | 85 return; // Key already released. |
86 | 86 |
87 key_state_.set(key, down); | 87 key_state_.set(key, down); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 | 216 |
217 DispatchKey(repeat_key_, true /* down */, true /* repeat */, | 217 DispatchKey(repeat_key_, true /* down */, true /* repeat */, |
218 EventTimeForNow(), repeat_device_id_); | 218 EventTimeForNow(), repeat_device_id_); |
219 | 219 |
220 ScheduleKeyRepeat(repeat_interval_); | 220 ScheduleKeyRepeat(repeat_interval_); |
221 } | 221 } |
222 | 222 |
223 void KeyboardEvdev::DispatchKey(unsigned int key, | 223 void KeyboardEvdev::DispatchKey(unsigned int key, |
224 bool down, | 224 bool down, |
225 bool repeat, | 225 bool repeat, |
226 base::TimeDelta timestamp, | 226 base::TimeTicks timestamp, |
227 int device_id) { | 227 int device_id) { |
228 DomCode dom_code = | 228 DomCode dom_code = |
229 KeycodeConverter::NativeKeycodeToDomCode(EvdevCodeToNativeCode(key)); | 229 KeycodeConverter::NativeKeycodeToDomCode(EvdevCodeToNativeCode(key)); |
230 if (dom_code == DomCode::NONE) | 230 if (dom_code == DomCode::NONE) |
231 return; | 231 return; |
232 int flags = modifiers_->GetModifierFlags(); | 232 int flags = modifiers_->GetModifierFlags(); |
233 DomKey dom_key; | 233 DomKey dom_key; |
234 KeyboardCode key_code; | 234 KeyboardCode key_code; |
235 if (!keyboard_layout_engine_->Lookup(dom_code, flags, &dom_key, &key_code)) | 235 if (!keyboard_layout_engine_->Lookup(dom_code, flags, &dom_key, &key_code)) |
236 return; | 236 return; |
237 if (!repeat) { | 237 if (!repeat) { |
238 int flag = ModifierDomKeyToEventFlag(dom_key); | 238 int flag = ModifierDomKeyToEventFlag(dom_key); |
239 UpdateModifier(flag, down); | 239 UpdateModifier(flag, down); |
240 } | 240 } |
241 | 241 |
242 KeyEvent event(down ? ET_KEY_PRESSED : ET_KEY_RELEASED, key_code, dom_code, | 242 KeyEvent event(down ? ET_KEY_PRESSED : ET_KEY_RELEASED, key_code, dom_code, |
243 modifiers_->GetModifierFlags(), dom_key, timestamp); | 243 modifiers_->GetModifierFlags(), dom_key, timestamp); |
244 event.set_source_device_id(device_id); | 244 event.set_source_device_id(device_id); |
245 callback_.Run(&event); | 245 callback_.Run(&event); |
246 } | 246 } |
247 | 247 |
248 } // namespace ui | 248 } // namespace ui |
OLD | NEW |