Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(857)

Unified Diff: ui/events/ozone/evdev/input_controller_evdev.cc

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/ozone/evdev/input_controller_evdev.h ('k') | ui/events/ozone/evdev/input_device_factory_evdev.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/input_controller_evdev.cc
diff --git a/ui/events/ozone/evdev/input_controller_evdev.cc b/ui/events/ozone/evdev/input_controller_evdev.cc
new file mode 100644
index 0000000000000000000000000000000000000000..63d1e32454fcd71281aa8e7a3604049cf1e44b17
--- /dev/null
+++ b/ui/events/ozone/evdev/input_controller_evdev.cc
@@ -0,0 +1,178 @@
+// 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/input_controller_evdev.h"
+
+#include <algorithm>
+#include <linux/input.h>
+
+#include "base/thread_task_runner_handle.h"
+#include "ui/events/ozone/evdev/input_device_factory_evdev_proxy.h"
+#include "ui/events/ozone/evdev/keyboard_evdev.h"
+#include "ui/events/ozone/evdev/mouse_button_map_evdev.h"
+
+namespace ui {
+
+InputControllerEvdev::InputControllerEvdev(KeyboardEvdev* keyboard,
+ MouseButtonMapEvdev* button_map)
+ : keyboard_(keyboard), button_map_(button_map), weak_ptr_factory_(this) {
+}
+
+InputControllerEvdev::~InputControllerEvdev() {
+}
+
+void InputControllerEvdev::SetInputDeviceFactory(
+ InputDeviceFactoryEvdevProxy* input_device_factory) {
+ input_device_factory_ = input_device_factory;
+
+ UpdateDeviceSettings();
+ UpdateCapsLockLed();
+}
+
+void InputControllerEvdev::set_has_mouse(bool has_mouse) {
+ has_mouse_ = has_mouse;
+}
+
+void InputControllerEvdev::set_has_touchpad(bool has_touchpad) {
+ has_touchpad_ = has_touchpad;
+}
+
+void InputControllerEvdev::SetInputDevicesEnabled(bool enabled) {
+ input_device_settings_.enable_devices = enabled;
+ ScheduleUpdateDeviceSettings();
+}
+
+bool InputControllerEvdev::HasMouse() {
+ return has_mouse_;
+}
+
+bool InputControllerEvdev::HasTouchpad() {
+ return has_touchpad_;
+}
+
+bool InputControllerEvdev::IsCapsLockEnabled() {
+ return keyboard_->IsCapsLockEnabled();
+}
+
+void InputControllerEvdev::SetCapsLockEnabled(bool enabled) {
+ keyboard_->SetCapsLockEnabled(enabled);
+ UpdateCapsLockLed();
+}
+
+void InputControllerEvdev::SetNumLockEnabled(bool enabled) {
+ // No num lock on Chrome OS.
+}
+
+bool InputControllerEvdev::IsAutoRepeatEnabled() {
+ return keyboard_->IsAutoRepeatEnabled();
+}
+
+void InputControllerEvdev::SetAutoRepeatEnabled(bool enabled) {
+ keyboard_->SetAutoRepeatEnabled(enabled);
+}
+
+void InputControllerEvdev::SetAutoRepeatRate(const base::TimeDelta& delay,
+ const base::TimeDelta& interval) {
+ keyboard_->SetAutoRepeatRate(delay, interval);
+}
+
+void InputControllerEvdev::GetAutoRepeatRate(base::TimeDelta* delay,
+ base::TimeDelta* interval) {
+ keyboard_->GetAutoRepeatRate(delay, interval);
+}
+
+void InputControllerEvdev::SetInternalTouchpadEnabled(bool enabled) {
+ input_device_settings_.enable_internal_touchpad = enabled;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetInternalKeyboardFilter(
+ bool enable_filter,
+ std::vector<DomCode> allowed_keys) {
+ input_device_settings_.enable_internal_keyboard_filter = enable_filter;
+ input_device_settings_.internal_keyboard_allowed_keys = allowed_keys;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetTouchpadSensitivity(int value) {
+ input_device_settings_.touchpad_sensitivity = value;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetTapToClick(bool enabled) {
+ input_device_settings_.tap_to_click_enabled = enabled;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetThreeFingerClick(bool enabled) {
+ input_device_settings_.three_finger_click_enabled = enabled;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetTapDragging(bool enabled) {
+ input_device_settings_.tap_dragging_enabled = enabled;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetNaturalScroll(bool enabled) {
+ input_device_settings_.natural_scroll_enabled = enabled;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetMouseSensitivity(int value) {
+ input_device_settings_.mouse_sensitivity = value;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::SetPrimaryButtonRight(bool right) {
+ button_map_->UpdateButtonMap(BTN_LEFT, right ? BTN_RIGHT : BTN_LEFT);
+ button_map_->UpdateButtonMap(BTN_RIGHT, right ? BTN_LEFT : BTN_RIGHT);
+}
+
+void InputControllerEvdev::SetTapToClickPaused(bool state) {
+ input_device_settings_.tap_to_click_paused = state;
+ ScheduleUpdateDeviceSettings();
+}
+
+void InputControllerEvdev::GetTouchDeviceStatus(
+ const GetTouchDeviceStatusReply& reply) {
+ if (input_device_factory_)
+ input_device_factory_->GetTouchDeviceStatus(reply);
+ else
+ reply.Run(make_scoped_ptr(new std::string));
+}
+
+void InputControllerEvdev::GetTouchEventLog(
+ const base::FilePath& out_dir,
+ const GetTouchEventLogReply& reply) {
+ if (input_device_factory_)
+ input_device_factory_->GetTouchEventLog(out_dir, reply);
+ else
+ reply.Run(make_scoped_ptr(new std::vector<base::FilePath>));
+}
+
+void InputControllerEvdev::ScheduleUpdateDeviceSettings() {
+ if (!input_device_factory_ || settings_update_pending_)
+ return;
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, base::Bind(&InputControllerEvdev::UpdateDeviceSettings,
+ weak_ptr_factory_.GetWeakPtr()));
+ settings_update_pending_ = true;
+}
+
+void InputControllerEvdev::UpdateDeviceSettings() {
+ input_device_factory_->UpdateInputDeviceSettings(input_device_settings_);
+ settings_update_pending_ = false;
+}
+
+void InputControllerEvdev::UpdateCapsLockLed() {
+ if (!input_device_factory_)
+ return;
+ bool caps_lock_state = IsCapsLockEnabled();
+ if (caps_lock_state != caps_lock_led_state_)
+ input_device_factory_->SetCapsLockLed(caps_lock_state);
+ caps_lock_led_state_ = caps_lock_state;
+}
+
+} // namespace ui
« no previous file with comments | « ui/events/ozone/evdev/input_controller_evdev.h ('k') | ui/events/ozone/evdev/input_device_factory_evdev.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698