Chromium Code Reviews| Index: ui/events/ozone/evdev/event_converter_evdev_impl.cc |
| diff --git a/ui/events/ozone/evdev/event_converter_evdev_impl.cc b/ui/events/ozone/evdev/event_converter_evdev_impl.cc |
| index 011a6c2dda5c5c783ccb092cf774b758ba98592b..6023e990d67f13e80b95cf4247c812be2454b7de 100644 |
| --- a/ui/events/ozone/evdev/event_converter_evdev_impl.cc |
| +++ b/ui/events/ozone/evdev/event_converter_evdev_impl.cc |
| @@ -10,7 +10,7 @@ |
| #include "base/message_loop/message_loop.h" |
| #include "ui/events/event.h" |
| #include "ui/events/keycodes/dom4/keycode_converter.h" |
| -#include "ui/events/keycodes/keyboard_codes.h" |
| +#include "ui/events/ozone/evdev/keyboard_evdev.h" |
| namespace ui { |
| @@ -31,6 +31,7 @@ EventConverterEvdevImpl::EventConverterEvdevImpl( |
| const EventDispatchCallback& callback) |
| : EventConverterEvdev(fd, path, id, type), |
| has_keyboard_(devinfo.HasKeyboard()), |
| + has_touchpad_(devinfo.HasTouchpad()), |
| x_offset_(0), |
| y_offset_(0), |
| cursor_(cursor), |
| @@ -57,6 +58,9 @@ void EventConverterEvdevImpl::OnFileCanReadWithoutBlocking(int fd) { |
| return; |
| } |
| + if (ignore_events_) |
|
spang
2015/01/02 22:49:57
Add a TODO(spang): Re-implement this by releasing
|
| + return; |
| + |
| DCHECK_EQ(read_size % sizeof(*inputs), 0u); |
| ProcessEvents(inputs, read_size / sizeof(*inputs)); |
| } |
| @@ -65,6 +69,21 @@ bool EventConverterEvdevImpl::HasKeyboard() const { |
| return has_keyboard_; |
| } |
| +bool EventConverterEvdevImpl::HasTouchpad() const { |
| + return has_touchpad_; |
| +} |
| + |
| +void EventConverterEvdevImpl::SetAllowedKeys( |
| + scoped_ptr<std::set<DomCode>> allowed_keys) { |
| + DCHECK(HasKeyboard()); |
| + allowed_keys_ = allowed_keys.Pass(); |
| +} |
| + |
| +void EventConverterEvdevImpl::AllowAllKeys() { |
| + DCHECK(HasKeyboard()); |
| + allowed_keys_.reset(); |
| +} |
| + |
| void EventConverterEvdevImpl::ProcessEvents(const input_event* inputs, |
| int count) { |
| for (int i = 0; i < count; ++i) { |
| @@ -95,7 +114,10 @@ void EventConverterEvdevImpl::ConvertKeyEvent(const input_event& input) { |
| } |
| // Keyboard processing. |
| - keyboard_->OnKeyChange(input.code, input.value != kKeyReleaseValue); |
| + DomCode key_code = KeycodeConverter::NativeKeycodeToDomCode( |
| + KeyboardEvdev::EvdevCodeToNativeCode(input.code)); |
|
kpschoedel
2014/12/25 18:14:17
NativeKeycodeToDomCode() is a slow operation; sinc
|
| + if (!allowed_keys_ || allowed_keys_->count(key_code)) |
| + keyboard_->OnKeyChange(input.code, input.value != kKeyReleaseValue); |
| } |
| void EventConverterEvdevImpl::ConvertMouseMoveEvent(const input_event& input) { |