diff options
author | Antoine Labour <piman@chromium.org> | 2014-10-27 16:13:29 -0700 |
---|---|---|
committer | Antoine Labour <piman@chromium.org> | 2014-10-27 23:15:32 +0000 |
commit | ae2cd5b958ee560d18e8d9dfbfd8193124390006 (patch) | |
tree | 6bf30acff0b780df89ea52a24b9f34cf6551f073 /ui/events/ozone | |
parent | 1b29da2e5a43c42752b8bf489880a82eaf04b930 (diff) | |
download | chromium_src-ae2cd5b958ee560d18e8d9dfbfd8193124390006.zip chromium_src-ae2cd5b958ee560d18e8d9dfbfd8193124390006.tar.gz chromium_src-ae2cd5b958ee560d18e8d9dfbfd8193124390006.tar.bz2 |
Revert "ozone: evdev: Handle mouse events"
This reverts commit e6e890a7ead1cca18d7f9fa9c75d9765c04e6c1a.
Causes compile failures:
http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Ozone%20Builder/builds/5856/steps/compile/logs/stdio
TBR=spang
BUG=
Review URL: https://codereview.chromium.org/682753005
Cr-Commit-Position: refs/heads/master@{#301474}
Diffstat (limited to 'ui/events/ozone')
-rw-r--r-- | ui/events/ozone/BUILD.gn | 4 | ||||
-rw-r--r-- | ui/events/ozone/evdev/event_converter_evdev_impl.cc | 136 | ||||
-rw-r--r-- | ui/events/ozone/evdev/event_converter_evdev_impl.h | 76 | ||||
-rw-r--r-- | ui/events/ozone/evdev/event_factory_evdev.cc | 14 | ||||
-rw-r--r-- | ui/events/ozone/evdev/key_event_converter_evdev.cc | 62 | ||||
-rw-r--r-- | ui/events/ozone/evdev/key_event_converter_evdev.h | 47 | ||||
-rw-r--r-- | ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc (renamed from ui/events/ozone/evdev/event_converter_evdev_impl_unittest.cc) | 65 | ||||
-rw-r--r-- | ui/events/ozone/events_ozone.gyp | 4 |
8 files changed, 150 insertions, 258 deletions
diff --git a/ui/events/ozone/BUILD.gn b/ui/events/ozone/BUILD.gn index f48b80e..51ad96d 100644 --- a/ui/events/ozone/BUILD.gn +++ b/ui/events/ozone/BUILD.gn @@ -45,8 +45,6 @@ component("events_ozone_evdev") { sources = [ "evdev/event_converter_evdev.cc", "evdev/event_converter_evdev.h", - "evdev/event_converter_evdev_impl.cc", - "evdev/event_converter_evdev_impl.h", "evdev/event_device_info.cc", "evdev/event_device_info.h", "evdev/event_factory_evdev.cc", @@ -54,6 +52,8 @@ component("events_ozone_evdev") { "evdev/event_modifiers_evdev.cc", "evdev/event_modifiers_evdev.h", "evdev/events_ozone_evdev_export.h", + "evdev/key_event_converter_evdev.cc", + "evdev/key_event_converter_evdev.h", "evdev/touch_event_converter_evdev.cc", "evdev/touch_event_converter_evdev.h", ] diff --git a/ui/events/ozone/evdev/event_converter_evdev_impl.cc b/ui/events/ozone/evdev/event_converter_evdev_impl.cc deleted file mode 100644 index 08c583d..0000000 --- a/ui/events/ozone/evdev/event_converter_evdev_impl.cc +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/events/ozone/evdev/event_converter_evdev_impl.h" - -#include <errno.h> -#include <linux/input.h> - -#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" - -namespace ui { - -EventConverterEvdevImpl::EventConverterEvdevImpl( - int fd, - base::FilePath path, - int id, - EventModifiersEvdev* modifiers, - CursorDelegateEvdev* cursor, - KeyboardEvdev* keyboard, - const EventDispatchCallback& callback) - : EventConverterEvdev(fd, path, id), - x_offset_(0), - y_offset_(0), - cursor_(cursor), - keyboard_(keyboard), - modifiers_(modifiers), - callback_(callback) { -} - -EventConverterEvdevImpl::~EventConverterEvdevImpl() { - Stop(); - close(fd_); -} - -void EventConverterEvdevImpl::OnFileCanReadWithoutBlocking(int fd) { - input_event inputs[4]; - ssize_t read_size = read(fd, inputs, sizeof(inputs)); - if (read_size < 0) { - if (errno == EINTR || errno == EAGAIN) - return; - if (errno != ENODEV) - PLOG(ERROR) << "error reading device " << path_.value(); - Stop(); - return; - } - - DCHECK_EQ(read_size % sizeof(*inputs), 0u); - ProcessEvents(inputs, read_size / sizeof(*inputs)); -} - -void EventConverterEvdevImpl::ProcessEvents(const input_event* inputs, - int count) { - for (int i = 0; i < count; ++i) { - const input_event& input = inputs[i]; - switch (input.type) { - case EV_KEY: - ConvertKeyEvent(input); - break; - case EV_REL: - ConvertMouseMoveEvent(input); - break; - case EV_SYN: - FlushEvents(); - break; - } - } -} - -void EventConverterEvdevImpl::ConvertKeyEvent(const input_event& input) { - // Mouse processing. - if (input.code >= BTN_MOUSE && input.code < BTN_JOYSTICK) { - DispatchMouseButton(input); - return; - } - // Keyboard processing. - keyboard_->OnKeyChange(input.code, input.value != 0); -} - -void EventConverterEvdevImpl::ConvertMouseMoveEvent(const input_event& input) { - if (!cursor_) - return; - switch (input.code) { - case REL_X: - x_offset_ = input.value; - break; - case REL_Y: - y_offset_ = input.value; - break; - } -} - -void EventConverterEvdevImpl::DispatchMouseButton(const input_event& input) { - if (!cursor_) - return; - - unsigned int modifier; - if (input.code == BTN_LEFT) - modifier = EVDEV_MODIFIER_LEFT_MOUSE_BUTTON; - else if (input.code == BTN_RIGHT) - modifier = EVDEV_MODIFIER_RIGHT_MOUSE_BUTTON; - else if (input.code == BTN_MIDDLE) - modifier = EVDEV_MODIFIER_MIDDLE_MOUSE_BUTTON; - else - return; - - int flag = modifiers_->GetEventFlagFromModifier(modifier); - modifiers_->UpdateModifier(modifier, input.value); - callback_.Run(make_scoped_ptr( - new MouseEvent(input.value ? ET_MOUSE_PRESSED : ET_MOUSE_RELEASED, - cursor_->location(), - cursor_->location(), - modifiers_->GetModifierFlags() | flag, - flag))); -} - -void EventConverterEvdevImpl::FlushEvents() { - if (!cursor_ || (x_offset_ == 0 && y_offset_ == 0)) - return; - - cursor_->MoveCursor(gfx::Vector2dF(x_offset_, y_offset_)); - - callback_.Run(make_scoped_ptr( - new MouseEvent(ui::ET_MOUSE_MOVED, - cursor_->location(), - cursor_->location(), - modifiers_->GetModifierFlags(), - /* changed_button_flags */ 0))); - x_offset_ = 0; - y_offset_ = 0; -} - -} // namespace ui diff --git a/ui/events/ozone/evdev/event_converter_evdev_impl.h b/ui/events/ozone/evdev/event_converter_evdev_impl.h deleted file mode 100644 index 600c0fe..0000000 --- a/ui/events/ozone/evdev/event_converter_evdev_impl.h +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_EVENTS_OZONE_EVDEV_EVENT_CONVERTER_EVDEV_IMPL_H_ -#define UI_EVENTS_OZONE_EVDEV_EVENT_CONVERTER_EVDEV_IMPL_H_ - -#include "base/files/file_path.h" -#include "base/message_loop/message_pump_libevent.h" -#include "ui/events/event.h" -#include "ui/events/ozone/evdev/cursor_delegate_evdev.h" -#include "ui/events/ozone/evdev/event_converter_evdev.h" -#include "ui/events/ozone/evdev/event_modifiers_evdev.h" -#include "ui/events/ozone/evdev/events_ozone_evdev_export.h" -#include "ui/events/ozone/evdev/keyboard_evdev.h" - -struct input_event; - -namespace ui { - -class EVENTS_OZONE_EVDEV_EXPORT EventConverterEvdevImpl - : public EventConverterEvdev { - public: - EventConverterEvdevImpl(int fd, - base::FilePath path, - int id, - EventModifiersEvdev* modifiers, - CursorDelegateEvdev* cursor, - KeyboardEvdev* keyboard, - const EventDispatchCallback& callback); - virtual ~EventConverterEvdevImpl(); - - // EventConverterEvdev: - void OnFileCanReadWithoutBlocking(int fd) override; - - private: - void ProcessEvents(const struct input_event* inputs, int count); - - void ConvertKeyEvent(const input_event& input); - - void ConvertMouseMoveEvent(const input_event& input); - - void DispatchMouseButton(const input_event& input); - - // Flush events delimited by EV_SYN. This is useful for handling - // non-axis-aligned movement properly. - void FlushEvents(); - - // Save x-axis events of relative devices to be flushed at EV_SYN time. - int x_offset_; - - // Save y-axis events of relative devices to be flushed at EV_SYN time. - int y_offset_; - - // Controller for watching the input fd. - base::MessagePumpLibevent::FileDescriptorWatcher controller_; - - // Shared cursor state. - CursorDelegateEvdev* cursor_; - - // Shared keyboard state. - KeyboardEvdev* keyboard_; - - // Modifier key state (shift, ctrl, etc). - EventModifiersEvdev* modifiers_; - - // Callback for dispatching events. - EventDispatchCallback callback_; - - DISALLOW_COPY_AND_ASSIGN(EventConverterEvdevImpl); -}; - -} // namespace ui - -#endif // UI_EVENTS_OZONE_EVDEV_EVENT_CONVERTER_EVDEV_IMPL_H_ - diff --git a/ui/events/ozone/evdev/event_factory_evdev.cc b/ui/events/ozone/evdev/event_factory_evdev.cc index d8f1c40..0a0d674 100644 --- a/ui/events/ozone/evdev/event_factory_evdev.cc +++ b/ui/events/ozone/evdev/event_factory_evdev.cc @@ -16,8 +16,8 @@ #include "ui/events/ozone/device/device_event.h" #include "ui/events/ozone/device/device_manager.h" #include "ui/events/ozone/evdev/cursor_delegate_evdev.h" -#include "ui/events/ozone/evdev/event_converter_evdev_impl.h" #include "ui/events/ozone/evdev/event_device_info.h" +#include "ui/events/ozone/evdev/key_event_converter_evdev.h" #include "ui/events/ozone/evdev/touch_event_converter_evdev.h" #if defined(USE_EVDEV_GESTURES) @@ -94,15 +94,9 @@ scoped_ptr<EventConverterEvdev> CreateConverter( return make_scoped_ptr<EventConverterEvdev>(new TouchEventConverterEvdev( fd, params.path, params.id, devinfo, params.dispatch_callback)); - // Everything else: use EventConverterEvdevImpl. - return make_scoped_ptr<EventConverterEvdevImpl>( - new EventConverterEvdevImpl(fd, - params.path, - params.id, - params.modifiers, - params.cursor, - params.keyboard, - params.dispatch_callback)); + // Everything else: use KeyEventConverterEvdev. + return make_scoped_ptr<EventConverterEvdev>( + new KeyEventConverterEvdev(fd, params.path, params.id, params.keyboard)); } // Open an input device. Opening may put the calling thread to sleep, and diff --git a/ui/events/ozone/evdev/key_event_converter_evdev.cc b/ui/events/ozone/evdev/key_event_converter_evdev.cc new file mode 100644 index 0000000..1f07eb2 --- /dev/null +++ b/ui/events/ozone/evdev/key_event_converter_evdev.cc @@ -0,0 +1,62 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/events/ozone/evdev/key_event_converter_evdev.h" + +#include <errno.h> +#include <linux/input.h> + +#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/event_modifiers_evdev.h" + +namespace ui { + +namespace { + +} // namespace + +KeyEventConverterEvdev::KeyEventConverterEvdev(int fd, + base::FilePath path, + int id, + KeyboardEvdev* keyboard) + : EventConverterEvdev(fd, path, id), keyboard_(keyboard) { +} + +KeyEventConverterEvdev::~KeyEventConverterEvdev() { + Stop(); + close(fd_); +} + +void KeyEventConverterEvdev::OnFileCanReadWithoutBlocking(int fd) { + input_event inputs[4]; + ssize_t read_size = read(fd, inputs, sizeof(inputs)); + if (read_size < 0) { + if (errno == EINTR || errno == EAGAIN) + return; + if (errno != ENODEV) + PLOG(ERROR) << "error reading device " << path_.value(); + Stop(); + return; + } + + DCHECK_EQ(read_size % sizeof(*inputs), 0u); + ProcessEvents(inputs, read_size / sizeof(*inputs)); +} + +void KeyEventConverterEvdev::ProcessEvents(const input_event* inputs, + int count) { + for (int i = 0; i < count; ++i) { + const input_event& input = inputs[i]; + if (input.type == EV_KEY) { + keyboard_->OnKeyChange(input.code, input.value != 0); + } else if (input.type == EV_SYN) { + // TODO(sadrul): Handle this case appropriately. + } + } +} + +} // namespace ui diff --git a/ui/events/ozone/evdev/key_event_converter_evdev.h b/ui/events/ozone/evdev/key_event_converter_evdev.h new file mode 100644 index 0000000..f1044fa --- /dev/null +++ b/ui/events/ozone/evdev/key_event_converter_evdev.h @@ -0,0 +1,47 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_OZONE_EVDEV_KEY_EVENT_CONVERTER_EVDEV_H_ +#define UI_EVENTS_OZONE_EVDEV_KEY_EVENT_CONVERTER_EVDEV_H_ + +#include "base/files/file_path.h" +#include "base/message_loop/message_pump_libevent.h" +#include "ui/events/event.h" +#include "ui/events/ozone/evdev/event_converter_evdev.h" +#include "ui/events/ozone/evdev/event_modifiers_evdev.h" +#include "ui/events/ozone/evdev/events_ozone_evdev_export.h" +#include "ui/events/ozone/evdev/keyboard_evdev.h" + +struct input_event; + +namespace ui { + +class EVENTS_OZONE_EVDEV_EXPORT KeyEventConverterEvdev + : public EventConverterEvdev { + public: + KeyEventConverterEvdev(int fd, + base::FilePath path, + int id, + KeyboardEvdev* keyboard); + virtual ~KeyEventConverterEvdev(); + + // EventConverterEvdev: + virtual void OnFileCanReadWithoutBlocking(int fd) override; + + void ProcessEvents(const struct input_event* inputs, int count); + + private: + // Controller for watching the input fd. + base::MessagePumpLibevent::FileDescriptorWatcher controller_; + + // Shared keyboard state. + KeyboardEvdev* keyboard_; + + DISALLOW_COPY_AND_ASSIGN(KeyEventConverterEvdev); +}; + +} // namspace ui + +#endif // UI_EVENTS_OZONE_EVDEV_KEY_EVENT_CONVERTER_EVDEV_H_ + diff --git a/ui/events/ozone/evdev/event_converter_evdev_impl_unittest.cc b/ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc index 62907a1..aa7d4a5 100644 --- a/ui/events/ozone/evdev/event_converter_evdev_impl_unittest.cc +++ b/ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc @@ -11,37 +11,38 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/events/event.h" #include "ui/events/keycodes/keyboard_codes.h" -#include "ui/events/ozone/evdev/event_converter_evdev_impl.h" +#include "ui/events/ozone/evdev/key_event_converter_evdev.h" #include "ui/events/ozone/evdev/keyboard_evdev.h" namespace ui { const char kTestDevicePath[] = "/dev/input/test-device"; -class MockEventConverterEvdevImpl : public EventConverterEvdevImpl { +class MockKeyEventConverterEvdev : public KeyEventConverterEvdev { public: - MockEventConverterEvdevImpl(int fd, KeyboardEvdev* keyboard) - : EventConverterEvdevImpl(fd, - base::FilePath(kTestDevicePath), - 1, - keyboard) { + MockKeyEventConverterEvdev(int fd, KeyboardEvdev* keyboard) + : KeyEventConverterEvdev(fd, + base::FilePath(kTestDevicePath), + 1, + keyboard) { Start(); } - virtual ~MockEventConverterEvdevImpl() {} + virtual ~MockKeyEventConverterEvdev() {}; private: - DISALLOW_COPY_AND_ASSIGN(MockEventConverterEvdevImpl); + DISALLOW_COPY_AND_ASSIGN(MockKeyEventConverterEvdev); }; } // namespace ui // Test fixture. -class EventConverterEvdevImplTest : public testing::Test { +class KeyEventConverterEvdevTest : public testing::Test { public: - EventConverterEvdevImplTest() {} + KeyEventConverterEvdevTest() {} // Overridden from testing::Test: - void SetUp() override { + virtual void SetUp() override { + // Set up pipe to satisfy message pump (unused). int evdev_io[2]; if (pipe(evdev_io)) @@ -52,12 +53,12 @@ class EventConverterEvdevImplTest : public testing::Test { modifiers_.reset(new ui::EventModifiersEvdev()); keyboard_.reset(new ui::KeyboardEvdev( modifiers_.get(), - base::Bind(&EventConverterEvdevImplTest::DispatchEventForTest, + base::Bind(&KeyEventConverterEvdevTest::DispatchEventForTest, base::Unretained(this)))); device_.reset( - new ui::MockEventConverterEvdevImpl(events_in_, keyboard_.get())); + new ui::MockKeyEventConverterEvdev(events_in_, keyboard_.get())); } - void TearDown() override { + virtual void TearDown() override { device_.reset(); keyboard_.reset(); modifiers_.reset(); @@ -65,7 +66,7 @@ class EventConverterEvdevImplTest : public testing::Test { close(events_out_); } - ui::MockEventConverterEvdevImpl* device() { return device_.get(); } + ui::MockKeyEventConverterEvdev* device() { return device_.get(); } ui::EventModifiersEvdev* modifiers() { return modifiers_.get(); } unsigned size() { return dispatched_events_.size(); } @@ -85,18 +86,18 @@ class EventConverterEvdevImplTest : public testing::Test { scoped_ptr<ui::EventModifiersEvdev> modifiers_; scoped_ptr<ui::KeyboardEvdev> keyboard_; - scoped_ptr<ui::MockEventConverterEvdevImpl> device_; + scoped_ptr<ui::MockKeyEventConverterEvdev> device_; ScopedVector<ui::Event> dispatched_events_; int events_out_; int events_in_; - DISALLOW_COPY_AND_ASSIGN(EventConverterEvdevImplTest); + DISALLOW_COPY_AND_ASSIGN(KeyEventConverterEvdevTest); }; -TEST_F(EventConverterEvdevImplTest, KeyPress) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, KeyPress) { + ui::MockKeyEventConverterEvdev* dev = device(); struct input_event mock_kernel_queue[] = { {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, @@ -124,8 +125,8 @@ TEST_F(EventConverterEvdevImplTest, KeyPress) { EXPECT_EQ(0, event->flags()); } -TEST_F(EventConverterEvdevImplTest, KeyRepeat) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, KeyRepeat) { + ui::MockKeyEventConverterEvdev* dev = device(); struct input_event mock_kernel_queue[] = { {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, @@ -171,14 +172,14 @@ TEST_F(EventConverterEvdevImplTest, KeyRepeat) { EXPECT_EQ(0, event->flags()); } -TEST_F(EventConverterEvdevImplTest, NoEvents) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, NoEvents) { + ui::MockKeyEventConverterEvdev* dev = device(); dev->ProcessEvents(NULL, 0); EXPECT_EQ(0u, size()); } -TEST_F(EventConverterEvdevImplTest, KeyWithModifier) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, KeyWithModifier) { + ui::MockKeyEventConverterEvdev* dev = device(); struct input_event mock_kernel_queue[] = { {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1}, @@ -224,8 +225,8 @@ TEST_F(EventConverterEvdevImplTest, KeyWithModifier) { EXPECT_EQ(0, event->flags()); } -TEST_F(EventConverterEvdevImplTest, KeyWithDuplicateModifier) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, KeyWithDuplicateModifier) { + ui::MockKeyEventConverterEvdev* dev = device(); struct input_event mock_kernel_queue[] = { {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1}, @@ -289,8 +290,8 @@ TEST_F(EventConverterEvdevImplTest, KeyWithDuplicateModifier) { EXPECT_EQ(0, event->flags()); } -TEST_F(EventConverterEvdevImplTest, KeyWithLock) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, KeyWithLock) { + ui::MockKeyEventConverterEvdev* dev = device(); struct input_event mock_kernel_queue[] = { {{0, 0}, EV_MSC, MSC_SCAN, 0x70039}, @@ -354,8 +355,8 @@ TEST_F(EventConverterEvdevImplTest, KeyWithLock) { EXPECT_EQ(0, event->flags()); } -TEST_F(EventConverterEvdevImplTest, UnmappedKeyPress) { - ui::MockEventConverterEvdevImpl* dev = device(); +TEST_F(KeyEventConverterEvdevTest, UnmappedKeyPress) { + ui::MockKeyEventConverterEvdev* dev = device(); struct input_event mock_kernel_queue[] = { {{0, 0}, EV_KEY, BTN_TOUCH, 1}, diff --git a/ui/events/ozone/events_ozone.gyp b/ui/events/ozone/events_ozone.gyp index b27efd1..c74263a 100644 --- a/ui/events/ozone/events_ozone.gyp +++ b/ui/events/ozone/events_ozone.gyp @@ -66,8 +66,6 @@ 'evdev/libgestures_glue/gesture_timer_provider.h', 'evdev/event_converter_evdev.cc', 'evdev/event_converter_evdev.h', - 'evdev/event_converter_evdev_impl.cc', - 'evdev/event_converter_evdev_impl.h', 'evdev/event_device_info.cc', 'evdev/event_device_info.h', 'evdev/event_factory_evdev.cc', @@ -75,6 +73,8 @@ 'evdev/event_modifiers_evdev.cc', 'evdev/event_modifiers_evdev.h', 'evdev/events_ozone_evdev_export.h', + 'evdev/key_event_converter_evdev.cc', + 'evdev/key_event_converter_evdev.h', 'evdev/keyboard_evdev.cc', 'evdev/keyboard_evdev.h', 'evdev/touch_event_converter_evdev.cc', |