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

Side by Side Diff: chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc

Issue 1883453002: mash: Use a stub InputController implementation when running mustash. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/chromeos/system/input_device_settings.h" 5 #include "chrome/browser/chromeos/system/input_device_settings.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
9 #include "ui/ozone/public/input_controller.h" 9 #include "ui/ozone/public/input_controller.h"
10 #include "ui/ozone/public/ozone_platform.h" 10 #include "ui/ozone/public/ozone_platform.h"
11 11
12 #if defined(MOJO_SHELL_CLIENT)
13 #include "content/public/common/mojo_shell_connection.h"
14 #endif
15
12 namespace chromeos { 16 namespace chromeos {
13 namespace system { 17 namespace system {
14 18
15 namespace { 19 namespace {
16 20
17 InputDeviceSettings* g_instance = nullptr; 21 InputDeviceSettings* g_instance = nullptr;
18 InputDeviceSettings* g_test_instance = nullptr; 22 InputDeviceSettings* g_test_instance = nullptr;
19 23
24 std::unique_ptr<ui::InputController> CreateStubInputControllerIfNecessary() {
25 #if defined(MOJO_SHELL_CLIENT)
26 content::MojoShellConnection* conn = content::MojoShellConnection::Get();
27 if (conn && conn->UsingExternalShell())
28 return ui::CreateStubInputController();
29 #endif
30 return nullptr;
31 }
32
20 // InputDeviceSettings for Linux without X11 (a.k.a. Ozone). 33 // InputDeviceSettings for Linux without X11 (a.k.a. Ozone).
21 class InputDeviceSettingsImplOzone : public InputDeviceSettings { 34 class InputDeviceSettingsImplOzone : public InputDeviceSettings {
22 public: 35 public:
23 InputDeviceSettingsImplOzone(); 36 InputDeviceSettingsImplOzone();
24 37
25 protected: 38 protected:
26 ~InputDeviceSettingsImplOzone() override {} 39 ~InputDeviceSettingsImplOzone() override {}
27 40
28 private: 41 private:
29 // Overridden from InputDeviceSettings. 42 // Overridden from InputDeviceSettings.
30 void TouchpadExists(const DeviceExistsCallback& callback) override; 43 void TouchpadExists(const DeviceExistsCallback& callback) override;
31 void UpdateTouchpadSettings(const TouchpadSettings& settings) override; 44 void UpdateTouchpadSettings(const TouchpadSettings& settings) override;
32 void SetTouchpadSensitivity(int value) override; 45 void SetTouchpadSensitivity(int value) override;
33 void SetTapToClick(bool enabled) override; 46 void SetTapToClick(bool enabled) override;
34 void SetThreeFingerClick(bool enabled) override; 47 void SetThreeFingerClick(bool enabled) override;
35 void SetTapDragging(bool enabled) override; 48 void SetTapDragging(bool enabled) override;
36 void SetNaturalScroll(bool enabled) override; 49 void SetNaturalScroll(bool enabled) override;
37 void MouseExists(const DeviceExistsCallback& callback) override; 50 void MouseExists(const DeviceExistsCallback& callback) override;
38 void UpdateMouseSettings(const MouseSettings& settings) override; 51 void UpdateMouseSettings(const MouseSettings& settings) override;
39 void SetMouseSensitivity(int value) override; 52 void SetMouseSensitivity(int value) override;
40 void SetPrimaryButtonRight(bool right) override; 53 void SetPrimaryButtonRight(bool right) override;
41 void ReapplyTouchpadSettings() override; 54 void ReapplyTouchpadSettings() override;
42 void ReapplyMouseSettings() override; 55 void ReapplyMouseSettings() override;
43 void SetInternalTouchpadEnabled(bool enabled) override; 56 void SetInternalTouchpadEnabled(bool enabled) override;
44 void SetTouchscreensEnabled(bool enabled) override; 57 void SetTouchscreensEnabled(bool enabled) override;
45 58
59 // TODO(sad): A stub input controller is used when running inside mus.
60 // http://crbug.com/601981
61 std::unique_ptr<ui::InputController> stub_controller_;
62
46 // Cached InputController pointer. It should be fixed throughout the browser 63 // Cached InputController pointer. It should be fixed throughout the browser
47 // session. 64 // session.
48 ui::InputController* input_controller_; 65 ui::InputController* input_controller_;
49 66
50 // Respective device setting objects. 67 // Respective device setting objects.
51 TouchpadSettings current_touchpad_settings_; 68 TouchpadSettings current_touchpad_settings_;
52 MouseSettings current_mouse_settings_; 69 MouseSettings current_mouse_settings_;
53 70
54 DISALLOW_COPY_AND_ASSIGN(InputDeviceSettingsImplOzone); 71 DISALLOW_COPY_AND_ASSIGN(InputDeviceSettingsImplOzone);
55 }; 72 };
56 73
57 InputDeviceSettingsImplOzone::InputDeviceSettingsImplOzone() 74 InputDeviceSettingsImplOzone::InputDeviceSettingsImplOzone()
58 : input_controller_( 75 : stub_controller_(CreateStubInputControllerIfNecessary()),
59 ui::OzonePlatform::GetInstance()->GetInputController()) { 76 input_controller_(
77 stub_controller_
78 ? stub_controller_.get()
79 : ui::OzonePlatform::GetInstance()->GetInputController()) {
60 // Make sure the input controller does exist. 80 // Make sure the input controller does exist.
61 DCHECK(ui::OzonePlatform::GetInstance()->GetInputController()); 81 DCHECK(input_controller_);
62 } 82 }
63 83
64 void InputDeviceSettingsImplOzone::TouchpadExists( 84 void InputDeviceSettingsImplOzone::TouchpadExists(
65 const DeviceExistsCallback& callback) { 85 const DeviceExistsCallback& callback) {
66 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 86 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
67 callback.Run(input_controller_->HasTouchpad()); 87 callback.Run(input_controller_->HasTouchpad());
68 } 88 }
69 89
70 void InputDeviceSettingsImplOzone::UpdateTouchpadSettings( 90 void InputDeviceSettingsImplOzone::UpdateTouchpadSettings(
71 const TouchpadSettings& settings) { 91 const TouchpadSettings& settings) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 void InputDeviceSettings::SetSettingsForTesting( 174 void InputDeviceSettings::SetSettingsForTesting(
155 InputDeviceSettings* test_settings) { 175 InputDeviceSettings* test_settings) {
156 if (g_test_instance == test_settings) 176 if (g_test_instance == test_settings)
157 return; 177 return;
158 delete g_test_instance; 178 delete g_test_instance;
159 g_test_instance = test_settings; 179 g_test_instance = test_settings;
160 } 180 }
161 181
162 } // namespace system 182 } // namespace system
163 } // namespace chromeos 183 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698