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

Unified Diff: ui/display/manager/chromeos/touch_transform_controller.cc

Issue 2617043003: Move TouchTransformerController to ui/display/. (Closed)
Patch Set: Make DEPS for one file. Created 3 years, 11 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
Index: ui/display/manager/chromeos/touch_transform_controller.cc
diff --git a/ash/touch/touch_transformer_controller.cc b/ui/display/manager/chromeos/touch_transform_controller.cc
similarity index 77%
rename from ash/touch/touch_transformer_controller.cc
rename to ui/display/manager/chromeos/touch_transform_controller.cc
index d253fc6ff52fd27721a4083af552af5ccbd39cb8..f9d28af09a0012a1dcda07e434dfe87b3dab56eb 100644
--- a/ash/touch/touch_transformer_controller.cc
+++ b/ui/display/manager/chromeos/touch_transform_controller.cc
@@ -2,29 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/touch/touch_transformer_controller.h"
+#include "ui/display/manager/chromeos/touch_transform_controller.h"
+
+#include <utility>
+#include <vector>
-#include "ash/display/window_tree_host_manager.h"
-#include "ash/host/ash_window_tree_host.h"
-#include "ash/root_window_controller.h"
-#include "ash/shell.h"
#include "third_party/skia/include/core/SkMatrix44.h"
-#include "ui/aura/window_tree_host.h"
#include "ui/display/display_layout.h"
#include "ui/display/manager/chromeos/display_configurator.h"
#include "ui/display/manager/display_manager.h"
+#include "ui/display/manager/managed_display_info.h"
+#include "ui/display/screen.h"
#include "ui/display/types/display_constants.h"
#include "ui/display/types/display_snapshot.h"
#include "ui/events/devices/device_data_manager.h"
-namespace ash {
+namespace display {
namespace {
-display::DisplayManager* GetDisplayManager() {
- return Shell::GetInstance()->display_manager();
-}
-
ui::TouchscreenDevice FindTouchscreenById(int id) {
const std::vector<ui::TouchscreenDevice>& touchscreens =
ui::DeviceDataManager::GetInstance()->GetTouchscreenDevices();
@@ -122,12 +118,11 @@ bool GetCalibratedTransform(
}
// Returns an uncalibrated touch transform.
-gfx::Transform GetUncalibratedTransform(
- const gfx::Transform& tm,
- const display::ManagedDisplayInfo& display,
- const display::ManagedDisplayInfo& touch_display,
- const gfx::SizeF& touch_area,
- const gfx::SizeF& touch_native_size) {
+gfx::Transform GetUncalibratedTransform(const gfx::Transform& tm,
+ const ManagedDisplayInfo& display,
+ const ManagedDisplayInfo& touch_display,
+ const gfx::SizeF& touch_area,
+ const gfx::SizeF& touch_native_size) {
gfx::SizeF current_size(display.bounds_in_native().size());
gfx::Transform ctm(tm);
// Take care of panel fitting only if supported. Panel fitting is emulated
@@ -167,8 +162,8 @@ gfx::Transform GetUncalibratedTransform(
// so we need to scale the touch radius to be compatible with the display's
// resolution. We compute the scale as
// sqrt of (display_area / touchscreen_area)
-double TouchTransformerController::GetTouchResolutionScale(
- const display::ManagedDisplayInfo& touch_display,
+double TouchTransformController::GetTouchResolutionScale(
+ const ManagedDisplayInfo& touch_display,
const ui::TouchscreenDevice& touch_device) const {
if (touch_device.id == ui::InputDevice::kInvalidId ||
touch_device.size.IsEmpty() ||
@@ -186,9 +181,9 @@ double TouchTransformerController::GetTouchResolutionScale(
return ratio;
}
-gfx::Transform TouchTransformerController::GetTouchTransform(
- const display::ManagedDisplayInfo& display,
- const display::ManagedDisplayInfo& touch_display,
+gfx::Transform TouchTransformController::GetTouchTransform(
+ const ManagedDisplayInfo& display,
+ const ManagedDisplayInfo& touch_display,
const ui::TouchscreenDevice& touchscreen,
const gfx::Size& framebuffer_size) const {
auto current_size = gfx::SizeF(display.bounds_in_native().size());
@@ -263,7 +258,7 @@ gfx::Transform TouchTransformerController::GetTouchTransform(
// inform the user with proper UX.
// Clear stored calibration data.
- GetDisplayManager()->ClearTouchCalibrationData(touch_display.id());
+ display_manager_->ClearTouchCalibrationData(touch_display.id());
// Return uncalibrated transform.
return GetUncalibratedTransform(ctm, display, touch_display, touch_area,
@@ -274,16 +269,16 @@ gfx::Transform TouchTransformerController::GetTouchTransform(
return stored_ctm;
}
-TouchTransformerController::TouchTransformerController() {
- Shell::GetInstance()->window_tree_host_manager()->AddObserver(this);
-}
+TouchTransformController::TouchTransformController(
+ DisplayConfigurator* display_configurator,
+ DisplayManager* display_manager)
+ : display_configurator_(display_configurator),
+ display_manager_(display_manager) {}
-TouchTransformerController::~TouchTransformerController() {
- Shell::GetInstance()->window_tree_host_manager()->RemoveObserver(this);
-}
+TouchTransformController::~TouchTransformController() {}
-void TouchTransformerController::UpdateTouchRadius(
- const display::ManagedDisplayInfo& display) const {
+void TouchTransformController::UpdateTouchRadius(
+ const ManagedDisplayInfo& display) const {
ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance();
for (const auto& device_id : display.input_devices()) {
device_manager->UpdateTouchRadiusScale(
@@ -292,13 +287,12 @@ void TouchTransformerController::UpdateTouchRadius(
}
}
-void TouchTransformerController::UpdateTouchTransform(
+void TouchTransformController::UpdateTouchTransform(
int64_t target_display_id,
- const display::ManagedDisplayInfo& touch_display,
- const display::ManagedDisplayInfo& target_display) const {
+ const ManagedDisplayInfo& touch_display,
+ const ManagedDisplayInfo& target_display) const {
ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance();
- gfx::Size fb_size =
- Shell::GetInstance()->display_configurator()->framebuffer_size();
+ gfx::Size fb_size = display_configurator_->framebuffer_size();
for (const auto& device_id : touch_display.input_devices()) {
device_manager->UpdateTouchInfoForDisplay(
target_display_id, device_id,
@@ -307,50 +301,45 @@ void TouchTransformerController::UpdateTouchTransform(
}
}
-void TouchTransformerController::UpdateTouchTransformer() const {
- ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance();
- device_manager->ClearTouchDeviceAssociations();
-
- // Display IDs and display::ManagedDisplayInfo for mirror or extended mode.
- int64_t display1_id = display::kInvalidDisplayId;
- int64_t display2_id = display::kInvalidDisplayId;
- display::ManagedDisplayInfo display1;
- display::ManagedDisplayInfo display2;
- // Display ID and display::ManagedDisplayInfo for single display mode.
- int64_t single_display_id = display::kInvalidDisplayId;
- display::ManagedDisplayInfo single_display;
-
- WindowTreeHostManager* window_tree_host_manager =
- Shell::GetInstance()->window_tree_host_manager();
- display::DisplayManager* display_manager = GetDisplayManager();
- if (display_manager->num_connected_displays() == 0) {
+void TouchTransformController::UpdateTouchTransforms() const {
+ ui::DeviceDataManager::GetInstance()->ClearTouchDeviceAssociations();
+
+ // Display IDs and ManagedDisplayInfo for mirror or extended mode.
+ int64_t display1_id = kInvalidDisplayId;
+ int64_t display2_id = kInvalidDisplayId;
+ ManagedDisplayInfo display1;
+ ManagedDisplayInfo display2;
+ // Display ID and ManagedDisplayInfo for single display mode.
+ int64_t single_display_id = kInvalidDisplayId;
+ ManagedDisplayInfo single_display;
+
+ if (display_manager_->num_connected_displays() == 0) {
return;
- } else if (display_manager->num_connected_displays() == 1 ||
- display_manager->IsInUnifiedMode()) {
- single_display_id = display_manager->first_display_id();
- DCHECK(single_display_id != display::kInvalidDisplayId);
- single_display = display_manager->GetDisplayInfo(single_display_id);
+ } else if (display_manager_->num_connected_displays() == 1 ||
+ display_manager_->IsInUnifiedMode()) {
+ single_display_id = display_manager_->first_display_id();
+ DCHECK(single_display_id != kInvalidDisplayId);
+ single_display = display_manager_->GetDisplayInfo(single_display_id);
UpdateTouchRadius(single_display);
} else {
- display::DisplayIdList list = display_manager->GetCurrentDisplayIdList();
+ DisplayIdList list = display_manager_->GetCurrentDisplayIdList();
display1_id = list[0];
display2_id = list[1];
- DCHECK(display1_id != display::kInvalidDisplayId &&
- display2_id != display::kInvalidDisplayId);
- display1 = display_manager->GetDisplayInfo(display1_id);
- display2 = display_manager->GetDisplayInfo(display2_id);
+ DCHECK(display1_id != kInvalidDisplayId &&
+ display2_id != kInvalidDisplayId);
+ display1 = display_manager_->GetDisplayInfo(display1_id);
+ display2 = display_manager_->GetDisplayInfo(display2_id);
UpdateTouchRadius(display1);
UpdateTouchRadius(display2);
}
- if (display_manager->IsInMirrorMode()) {
- int64_t primary_display_id =
- window_tree_host_manager->GetPrimaryDisplayId();
- if (GetDisplayManager()->SoftwareMirroringEnabled()) {
+ if (display_manager_->IsInMirrorMode()) {
+ int64_t primary_display_id = Screen::GetScreen()->GetPrimaryDisplay().id();
+ if (display_manager_->SoftwareMirroringEnabled()) {
// In extended but software mirroring mode, there is a WindowTreeHost for
// each display, but all touches are forwarded to the primary root
// window's WindowTreeHost.
- display::ManagedDisplayInfo target_display =
+ ManagedDisplayInfo target_display =
primary_display_id == display1_id ? display1 : display2;
UpdateTouchTransform(target_display.id(), display1, target_display);
UpdateTouchTransform(target_display.id(), display2, target_display);
@@ -363,7 +352,7 @@ void TouchTransformerController::UpdateTouchTransformer() const {
return;
}
- if (display_manager->num_connected_displays() > 1) {
+ if (display_manager_->num_connected_displays() > 1) {
// In actual extended mode, each display is associated with one
// WindowTreeHost.
UpdateTouchTransform(display1_id, display1, display1);
@@ -375,12 +364,4 @@ void TouchTransformerController::UpdateTouchTransformer() const {
UpdateTouchTransform(single_display_id, single_display, single_display);
}
-void TouchTransformerController::OnDisplaysInitialized() {
- UpdateTouchTransformer();
-}
-
-void TouchTransformerController::OnDisplayConfigurationChanged() {
- UpdateTouchTransformer();
-}
-
-} // namespace ash
+} // namespace display

Powered by Google App Engine
This is Rietveld 408576698