summaryrefslogtreecommitdiff
path: root/chromium/components/mus/ws/touch_controller.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/mus/ws/touch_controller.cc')
-rw-r--r--chromium/components/mus/ws/touch_controller.cc105
1 files changed, 0 insertions, 105 deletions
diff --git a/chromium/components/mus/ws/touch_controller.cc b/chromium/components/mus/ws/touch_controller.cc
deleted file mode 100644
index e78b3489dc9..00000000000
--- a/chromium/components/mus/ws/touch_controller.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/mus/ws/touch_controller.h"
-
-#include <set>
-#include <vector>
-
-#include "base/logging.h"
-#include "components/mus/ws/display.h"
-#include "components/mus/ws/display_manager.h"
-#include "ui/events/devices/device_data_manager.h"
-#include "ui/events/devices/touchscreen_device.h"
-#include "ui/gfx/geometry/size.h"
-#include "ui/gfx/transform.h"
-
-namespace mus {
-namespace ws {
-
-namespace {
-
-// Computes the scale ratio for the TouchEvent's radius.
-double ComputeTouchResolutionScale(const Display* touch_display,
- const ui::TouchscreenDevice& touch_device) {
- gfx::Size touch_display_size = touch_display->GetSize();
-
- if (touch_device.size.IsEmpty() || touch_display_size.IsEmpty())
- return 1.0;
-
- double display_area = touch_display_size.GetArea();
- double touch_area = touch_device.size.GetArea();
- double ratio = std::sqrt(display_area / touch_area);
-
- return ratio;
-}
-
-// Computes a touch transform that maps from window bounds to touchscreen size.
-// Assumes scale factor of 1.0.
-gfx::Transform ComputeTouchTransform(
- const Display* touch_display,
- const ui::TouchscreenDevice& touch_device) {
- gfx::Size touch_display_size = touch_display->GetSize();
-
- gfx::SizeF current_size(touch_display_size);
- gfx::SizeF touch_area(touch_device.size);
- gfx::Transform transform;
-
- if (current_size.IsEmpty() || touch_area.IsEmpty())
- return transform;
-
- // Take care of scaling between touchscreen area and display resolution.
- transform.Scale(current_size.width() / touch_area.width(),
- current_size.height() / touch_area.height());
- return transform;
-}
-
-} // namespace
-
-TouchController::TouchController(DisplayManager* display_manager)
- : display_manager_(display_manager) {
- DCHECK(display_manager_);
- ui::DeviceDataManager::GetInstance()->AddObserver(this);
-}
-
-TouchController::~TouchController() {
- ui::DeviceDataManager::GetInstance()->RemoveObserver(this);
-}
-
-void TouchController::UpdateTouchTransforms() const {
- ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance();
- device_manager->ClearTouchDeviceAssociations();
-
- const std::set<Display*>& touch_displays = display_manager_->displays();
- const std::vector<ui::TouchscreenDevice>& touch_devices =
- device_manager->GetTouchscreenDevices();
-
- // Mash can only handle a single display so this doesn't implement support for
- // matching touchscreens with multiple displays.
- // TODO(kylechar): Implement support for multiple displays when needed.
- if (touch_displays.size() == 1 && touch_devices.size() == 1) {
- const Display* touch_display = *touch_displays.begin();
- const ui::TouchscreenDevice& touch_device = touch_devices[0];
-
- int64_t touch_display_id = touch_display->GetPlatformDisplayId();
- int touch_device_id = touch_device.id;
-
- if (touch_device_id != ui::InputDevice::kInvalidId) {
- device_manager->UpdateTouchRadiusScale(
- touch_device_id,
- ComputeTouchResolutionScale(touch_display, touch_device));
-
- device_manager->UpdateTouchInfoForDisplay(
- touch_display_id, touch_device_id,
- ComputeTouchTransform(touch_display, touch_device));
- }
- }
-}
-
-void TouchController::OnTouchscreenDeviceConfigurationChanged() {
- UpdateTouchTransforms();
-}
-
-} // namespace ws
-} // namespace mus