Index: ui/events/ozone/evdev/input_device_factory_evdev.cc |
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev.cc b/ui/events/ozone/evdev/input_device_factory_evdev.cc |
index 508e4fb03111aa2b2fa7e602e953d73a13f8b74e..2d2904f5000fe8e6c23e05c8e1542259622abc5e 100644 |
--- a/ui/events/ozone/evdev/input_device_factory_evdev.cc |
+++ b/ui/events/ozone/evdev/input_device_factory_evdev.cc |
@@ -13,6 +13,7 @@ |
#include "base/time/time.h" |
#include "ui/events/devices/device_data_manager.h" |
#include "ui/events/devices/device_util_linux.h" |
+#include "ui/events/ozone/evdev/device_event_dispatcher_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/tablet_event_converter_evdev.h" |
@@ -306,14 +307,6 @@ void InputDeviceFactoryEvdev::EnableInternalKeyboard() { |
} |
} |
-bool InputDeviceFactoryEvdev::HasMouse() { |
- return GetDeviceIdsByType(DT_MOUSE, NULL); |
-} |
- |
-bool InputDeviceFactoryEvdev::HasTouchpad() { |
- return GetDeviceIdsByType(DT_TOUCHPAD, NULL); |
-} |
- |
void InputDeviceFactoryEvdev::SetTouchpadSensitivity(int value) { |
SetIntPropertyForOneType(DT_TOUCHPAD, "Pointer Sensitivity", value); |
SetIntPropertyForOneType(DT_TOUCHPAD, "Scroll Sensitivity", value); |
@@ -352,10 +345,15 @@ void InputDeviceFactoryEvdev::NotifyDeviceChange( |
if (converter.HasKeyboard()) |
NotifyKeyboardsUpdated(); |
+ |
+ if (converter.HasMouse()) |
+ NotifyMouseDevicesUpdated(); |
+ |
+ if (converter.HasTouchpad()) |
+ NotifyMouseDevicesUpdated(); |
} |
void InputDeviceFactoryEvdev::NotifyTouchscreensUpdated() { |
- DeviceHotplugEventObserver* observer = DeviceDataManager::GetInstance(); |
std::vector<TouchscreenDevice> touchscreens; |
for (auto it = converters_.begin(); it != converters_.end(); ++it) { |
if (it->second->HasTouchscreen()) { |
@@ -368,11 +366,10 @@ void InputDeviceFactoryEvdev::NotifyTouchscreensUpdated() { |
} |
} |
- observer->OnTouchscreenDevicesUpdated(touchscreens); |
+ dispatcher_->DispatchTouchscreenDevicesUpdated(touchscreens); |
} |
void InputDeviceFactoryEvdev::NotifyKeyboardsUpdated() { |
- DeviceHotplugEventObserver* observer = DeviceDataManager::GetInstance(); |
std::vector<KeyboardDevice> keyboards; |
for (auto it = converters_.begin(); it != converters_.end(); ++it) { |
if (it->second->HasKeyboard()) { |
@@ -381,24 +378,31 @@ void InputDeviceFactoryEvdev::NotifyKeyboardsUpdated() { |
} |
} |
- observer->OnKeyboardDevicesUpdated(keyboards); |
+ dispatcher_->DispatchKeyboardDevicesUpdated(keyboards); |
} |
-bool InputDeviceFactoryEvdev::GetDeviceIdsByType(const EventDeviceType type, |
- std::vector<int>* device_ids) { |
- if (device_ids) |
- device_ids->clear(); |
- std::vector<int> ids; |
+void InputDeviceFactoryEvdev::NotifyMouseDevicesUpdated() { |
+ std::vector<InputDevice> mice; |
+ for (auto it = converters_.begin(); it != converters_.end(); ++it) { |
+ if (it->second->HasMouse()) { |
+ mice.push_back(InputDevice(it->second->id(), it->second->type(), |
+ std::string() /* Device name */)); |
+ } |
+ } |
-#if defined(USE_EVDEV_GESTURES) |
- // Ask GesturePropertyProvider for matching devices. |
- gesture_property_provider_->GetDeviceIdsByType(type, &ids); |
-#endif |
- // In the future we can add other device matching logics here. |
+ dispatcher_->DispatchMouseDevicesUpdated(mice); |
+} |
+ |
+void InputDeviceFactoryEvdev::NotifyTouchpadDevicesUpdated() { |
+ std::vector<InputDevice> touchpads; |
+ for (auto it = converters_.begin(); it != converters_.end(); ++it) { |
+ if (it->second->HasTouchpad()) { |
+ touchpads.push_back(InputDevice(it->second->id(), it->second->type(), |
+ std::string() /* Device name */)); |
+ } |
+ } |
- if (device_ids) |
- device_ids->assign(ids.begin(), ids.end()); |
- return !ids.empty(); |
+ dispatcher_->DispatchTouchpadDevicesUpdated(touchpads); |
} |
void InputDeviceFactoryEvdev::SetIntPropertyForOneType( |