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

Unified Diff: ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc

Issue 1412623006: Developer Feature: Add Debug Accelerators to Toggle Touchscreen/Touchpad On or Off (CrOS) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sadrul's comment Created 5 years, 1 month 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
Index: ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc
diff --git a/ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc b/ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc
index 77043942b6dfd89c4c7bb3ee546f0db331b47c41..2f7fde2acadef896089c3c29a80ddd9dbff5f789 100644
--- a/ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc
+++ b/ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc
@@ -73,8 +73,7 @@ ScopedDisableInternalMouseAndKeyboardX11::
last_mouse_location_(GetMouseLocationInScreen()) {
ui::DeviceDataManagerX11* device_data_manager =
- static_cast<ui::DeviceDataManagerX11*>(
- ui::DeviceDataManager::GetInstance());
+ ui::DeviceDataManagerX11::GetInstance();
if (device_data_manager->IsXInput2Available()) {
const XIDeviceList& xi_dev_list =
ui::DeviceListCacheX11::GetInstance()->GetXI2DeviceList(
@@ -83,10 +82,14 @@ ScopedDisableInternalMouseAndKeyboardX11::
std::string device_name(xi_dev_list[i].name);
base::TrimWhitespaceASCII(device_name, base::TRIM_TRAILING, &device_name);
if (device_name == kInternalTouchpadName) {
- touchpad_device_id_ = xi_dev_list[i].deviceid;
- device_data_manager->DisableDevice(touchpad_device_id_);
- aura::client::GetCursorClient(
- Shell::GetInstance()->GetPrimaryRootWindow())->HideCursor();
+ if (device_data_manager->IsDeviceEnabled(xi_dev_list[i].deviceid)) {
+ // If the touchpad is already disabled we will do nothing about it.
+ // This will result in doing nothing in the destructor as well since
+ // |touchpad_device_id_| will remain |kDeviceIdNone|.
+ touchpad_device_id_ = xi_dev_list[i].deviceid;
+ device_data_manager->DisableDevice(touchpad_device_id_);
+ Shell::GetInstance()->cursor_manager()->HideCursor();
+ }
} else if (device_name == kCoreKeyboardName) {
core_keyboard_device_id_ = xi_dev_list[i].deviceid;
device_data_manager->DisableDevice(core_keyboard_device_id_);
@@ -118,8 +121,10 @@ ScopedDisableInternalMouseAndKeyboardX11::
ui::DeviceDataManagerX11* device_data_manager =
static_cast<ui::DeviceDataManagerX11*>(
ui::DeviceDataManager::GetInstance());
- if (touchpad_device_id_ != kDeviceIdNone)
+ if (touchpad_device_id_ != kDeviceIdNone) {
device_data_manager->EnableDevice(touchpad_device_id_);
+ Shell::GetInstance()->cursor_manager()->ShowCursor();
+ }
if (keyboard_device_id_ != kDeviceIdNone)
device_data_manager->EnableDevice(keyboard_device_id_);
if (core_keyboard_device_id_ != kDeviceIdNone)

Powered by Google App Engine
This is Rietveld 408576698