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

Unified Diff: ui/events/devices/device_data_manager.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/devices/device_data_manager.h ('k') | ui/events/devices/device_hotplug_event_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/devices/device_data_manager.cc
diff --git a/ui/events/device_data_manager.cc b/ui/events/devices/device_data_manager.cc
similarity index 53%
rename from ui/events/device_data_manager.cc
rename to ui/events/devices/device_data_manager.cc
index d255b871abc80b10082d7408e92e25deafc7cb9a..44ca1fa7beccc0cef3c4beb8c83f7e5b9802aeb4 100644
--- a/ui/events/device_data_manager.cc
+++ b/ui/events/devices/device_data_manager.cc
@@ -2,17 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ui/events/device_data_manager.h"
+#include "ui/events/devices/device_data_manager.h"
#include "base/at_exit.h"
#include "base/bind.h"
#include "base/logging.h"
-#include "ui/events/input_device_event_observer.h"
+#include "ui/events/devices/input_device_event_observer.h"
#include "ui/gfx/display.h"
#include "ui/gfx/geometry/point3_f.h"
namespace ui {
+namespace {
+
+bool InputDeviceEquals(const ui::InputDevice& a, const ui::InputDevice& b) {
+ return a.id == b.id;
+}
+
+} // namespace
+
// static
DeviceDataManager* DeviceDataManager::instance_ = NULL;
@@ -23,10 +31,7 @@ DeviceDataManager::DeviceDataManager() {
base::AtExitManager::RegisterTask(
base::Bind(&base::DeletePointer<DeviceDataManager>, this));
- for (int i = 0; i < kMaxDeviceNum; ++i) {
- touch_device_to_display_map_[i] = gfx::Display::kInvalidDisplayID;
- touch_radius_scale_map_[i] = 1.0;
- }
+ ClearTouchDeviceAssociations();
}
DeviceDataManager::~DeviceDataManager() {
@@ -56,24 +61,25 @@ bool DeviceDataManager::HasInstance() {
return instance_ != NULL;
}
-void DeviceDataManager::ClearTouchTransformerRecord() {
+void DeviceDataManager::ClearTouchDeviceAssociations() {
for (int i = 0; i < kMaxDeviceNum; i++) {
touch_device_transformer_map_[i] = gfx::Transform();
- touch_device_to_display_map_[i] = gfx::Display::kInvalidDisplayID;
+ touch_device_to_target_display_map_[i] = gfx::Display::kInvalidDisplayID;
touch_radius_scale_map_[i] = 1.0;
}
}
-bool DeviceDataManager::IsTouchDeviceIdValid(int touch_device_id) const {
+bool DeviceDataManager::IsTouchDeviceIdValid(
+ int touch_device_id) const {
return (touch_device_id > 0 && touch_device_id < kMaxDeviceNum);
}
void DeviceDataManager::UpdateTouchInfoForDisplay(
- int64_t display_id,
+ int64_t target_display_id,
int touch_device_id,
const gfx::Transform& touch_transformer) {
if (IsTouchDeviceIdValid(touch_device_id)) {
- touch_device_to_display_map_[touch_device_id] = display_id;
+ touch_device_to_target_display_map_[touch_device_id] = target_display_id;
touch_device_transformer_map_[touch_device_id] = touch_transformer;
}
}
@@ -103,19 +109,79 @@ void DeviceDataManager::ApplyTouchTransformer(int touch_device_id,
}
}
-int64_t DeviceDataManager::GetDisplayForTouchDevice(int touch_device_id) const {
+int64_t DeviceDataManager::GetTargetDisplayForTouchDevice(
+ int touch_device_id) const {
if (IsTouchDeviceIdValid(touch_device_id))
- return touch_device_to_display_map_[touch_device_id];
+ return touch_device_to_target_display_map_[touch_device_id];
return gfx::Display::kInvalidDisplayID;
}
void DeviceDataManager::OnTouchscreenDevicesUpdated(
const std::vector<TouchscreenDevice>& devices) {
+ if (devices.size() == touchscreen_devices_.size() &&
+ std::equal(devices.begin(),
+ devices.end(),
+ touchscreen_devices_.begin(),
+ InputDeviceEquals)) {
+ return;
+ }
touchscreen_devices_ = devices;
+ FOR_EACH_OBSERVER(InputDeviceEventObserver,
+ observers_,
+ OnTouchscreenDeviceConfigurationChanged());
+}
+
+void DeviceDataManager::OnKeyboardDevicesUpdated(
+ const std::vector<KeyboardDevice>& devices) {
+ if (devices.size() == keyboard_devices_.size() &&
+ std::equal(devices.begin(),
+ devices.end(),
+ keyboard_devices_.begin(),
+ InputDeviceEquals)) {
+ return;
+ }
+ keyboard_devices_ = devices;
+ FOR_EACH_OBSERVER(InputDeviceEventObserver,
+ observers_,
+ OnKeyboardDeviceConfigurationChanged());
+}
+
+void DeviceDataManager::OnMouseDevicesUpdated(
+ const std::vector<InputDevice>& devices) {
+ if (devices.size() == mouse_devices_.size() &&
+ std::equal(devices.begin(),
+ devices.end(),
+ mouse_devices_.begin(),
+ InputDeviceEquals)) {
+ return;
+ }
+ mouse_devices_ = devices;
+ FOR_EACH_OBSERVER(InputDeviceEventObserver,
+ observers_,
+ OnMouseDeviceConfigurationChanged());
+}
+void DeviceDataManager::OnTouchpadDevicesUpdated(
+ const std::vector<InputDevice>& devices) {
+ if (devices.size() == touchpad_devices_.size() &&
+ std::equal(devices.begin(),
+ devices.end(),
+ touchpad_devices_.begin(),
+ InputDeviceEquals)) {
+ return;
+ }
+ touchpad_devices_ = devices;
FOR_EACH_OBSERVER(InputDeviceEventObserver,
observers_,
- OnInputDeviceConfigurationChanged());
+ OnTouchpadDeviceConfigurationChanged());
+}
+
+void DeviceDataManager::OnDeviceListsComplete() {
+ if (!device_lists_complete_) {
+ device_lists_complete_ = true;
+ FOR_EACH_OBSERVER(InputDeviceEventObserver, observers_,
+ OnDeviceListsComplete());
+ }
}
void DeviceDataManager::AddObserver(InputDeviceEventObserver* observer) {
« no previous file with comments | « ui/events/devices/device_data_manager.h ('k') | ui/events/devices/device_hotplug_event_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698