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

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

Issue 889403003: Make PointerDeviceObserver work under Ozone (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/pointer_device_observer.h" 5 #include "chrome/browser/chromeos/system/pointer_device_observer.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "chrome/browser/chromeos/system/input_device_settings.h" 10 #include "chrome/browser/chromeos/system/input_device_settings.h"
11 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
12 #include "ui/events/devices/device_data_manager.h"
12 13
13 #if defined(USE_X11) 14 #if defined(USE_X11)
14 #include "chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener .h" 15 #include "chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener .h"
15 #endif 16 #endif
16 17
17 using content::BrowserThread; 18 using content::BrowserThread;
18 19
19 namespace chromeos { 20 namespace chromeos {
20 namespace system { 21 namespace system {
21 22
22 PointerDeviceObserver::PointerDeviceObserver() 23 PointerDeviceObserver::PointerDeviceObserver()
23 : weak_factory_(this) { 24 : weak_factory_(this) {
24 } 25 }
25 26
26 PointerDeviceObserver::~PointerDeviceObserver() { 27 PointerDeviceObserver::~PointerDeviceObserver() {
27 #if defined(USE_X11) 28 #if defined(USE_X11)
28 XInputHierarchyChangedEventListener::GetInstance() 29 XInputHierarchyChangedEventListener::GetInstance()
29 ->RemoveObserver(this); 30 ->RemoveObserver(this);
31 #elif defined(USE_OZONE)
32 ui::DeviceDataManager::GetInstance()->RemoveObserver(this);
sadrul 2015/02/03 15:29:04 There's no reason to add this ifdef. We should jus
pkotwicz 2015/02/03 16:50:14 I completely agree. I am not doing this as part of
sadrul 2015/02/03 17:33:04 Unfortunately no. Providing default no-op impls on
30 #endif 33 #endif
31 } 34 }
32 35
33 void PointerDeviceObserver::Init() { 36 void PointerDeviceObserver::Init() {
34 #if defined(USE_X11) 37 #if defined(USE_X11)
35 XInputHierarchyChangedEventListener::GetInstance() 38 XInputHierarchyChangedEventListener::GetInstance()
36 ->AddObserver(this); 39 ->AddObserver(this);
40 #elif defined(USE_OZONE)
41 ui::DeviceDataManager::GetInstance()->AddObserver(this);
37 #endif 42 #endif
38 } 43 }
39 44
40 void PointerDeviceObserver::CheckDevices() { 45 void PointerDeviceObserver::CheckDevices() {
41 CheckMouseExists(); 46 CheckMouseExists();
42 CheckTouchpadExists(); 47 CheckTouchpadExists();
43 } 48 }
44 49
45 void PointerDeviceObserver::AddObserver(Observer* observer) { 50 void PointerDeviceObserver::AddObserver(Observer* observer) {
46 observers_.AddObserver(observer); 51 observers_.AddObserver(observer);
47 } 52 }
48 53
49 void PointerDeviceObserver::RemoveObserver(Observer* observer) { 54 void PointerDeviceObserver::RemoveObserver(Observer* observer) {
50 observers_.RemoveObserver(observer); 55 observers_.RemoveObserver(observer);
51 } 56 }
52 57
53 void PointerDeviceObserver::DeviceHierarchyChanged() { 58 void PointerDeviceObserver::DeviceHierarchyChanged() {
54 CheckDevices(); 59 CheckDevices();
55 } 60 }
56 61
62 void PointerDeviceObserver::OnMouseDeviceConfigurationChanged() {
63 CheckDevices();
64 }
65
66 void PointerDeviceObserver::OnTouchpadDeviceConfigurationChanged() {
67 CheckDevices();
68 }
69
57 void PointerDeviceObserver::CheckTouchpadExists() { 70 void PointerDeviceObserver::CheckTouchpadExists() {
58 InputDeviceSettings::Get()->TouchpadExists( 71 InputDeviceSettings::Get()->TouchpadExists(
59 base::Bind(&PointerDeviceObserver::OnTouchpadExists, 72 base::Bind(&PointerDeviceObserver::OnTouchpadExists,
60 weak_factory_.GetWeakPtr())); 73 weak_factory_.GetWeakPtr()));
sadrul 2015/02/03 17:33:04 side rant: eh, why is there an ozone implementatio
61 } 74 }
62 75
63 void PointerDeviceObserver::CheckMouseExists() { 76 void PointerDeviceObserver::CheckMouseExists() {
64 InputDeviceSettings::Get()->MouseExists( 77 InputDeviceSettings::Get()->MouseExists(
65 base::Bind(&PointerDeviceObserver::OnMouseExists, 78 base::Bind(&PointerDeviceObserver::OnMouseExists,
66 weak_factory_.GetWeakPtr())); 79 weak_factory_.GetWeakPtr()));
67 } 80 }
68 81
69 void PointerDeviceObserver::OnTouchpadExists(bool exists) { 82 void PointerDeviceObserver::OnTouchpadExists(bool exists) {
70 FOR_EACH_OBSERVER(Observer, observers_, TouchpadExists(exists)); 83 FOR_EACH_OBSERVER(Observer, observers_, TouchpadExists(exists));
71 } 84 }
72 85
73 void PointerDeviceObserver::OnMouseExists(bool exists) { 86 void PointerDeviceObserver::OnMouseExists(bool exists) {
74 FOR_EACH_OBSERVER(Observer, observers_, MouseExists(exists)); 87 FOR_EACH_OBSERVER(Observer, observers_, MouseExists(exists));
75 } 88 }
76 89
77 PointerDeviceObserver::Observer::~Observer() { 90 PointerDeviceObserver::Observer::~Observer() {
78 } 91 }
79 92
80 } // namespace system 93 } // namespace system
81 } // namespace chromeos 94 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698