| 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 |