| Index: ui/display/manager/display_manager.cc
|
| diff --git a/ui/display/manager/display_manager.cc b/ui/display/manager/display_manager.cc
|
| index 9d74e347af78ff29137383a72c02bb02b4e1616c..6d3e03ab020d8d978db535f84b075c6ddaddefaa 100644
|
| --- a/ui/display/manager/display_manager.cc
|
| +++ b/ui/display/manager/display_manager.cc
|
| @@ -394,7 +394,8 @@ void DisplayManager::RegisterDisplayProperty(
|
| const gfx::Insets* overscan_insets,
|
| const gfx::Size& resolution_in_pixels,
|
| float device_scale_factor,
|
| - ui::ColorCalibrationProfile color_profile) {
|
| + ui::ColorCalibrationProfile color_profile,
|
| + const TouchCalibrationData* touch_calibration_data) {
|
| if (display_info_.find(display_id) == display_info_.end())
|
| display_info_[display_id] =
|
| ManagedDisplayInfo(display_id, std::string(), false);
|
| @@ -415,6 +416,8 @@ void DisplayManager::RegisterDisplayProperty(
|
| display_info_[display_id].set_configured_ui_scale(ui_scale);
|
| if (overscan_insets)
|
| display_info_[display_id].SetOverscanInsets(*overscan_insets);
|
| + if (touch_calibration_data)
|
| + display_info_[display_id].SetTouchCalibrationData(*touch_calibration_data);
|
| if (!resolution_in_pixels.IsEmpty()) {
|
| DCHECK(!Display::IsInternalDisplayId(display_id));
|
| // Default refresh rate, until OnNativeDisplaysChanged() updates us with the
|
| @@ -984,6 +987,44 @@ void DisplayManager::SetSoftwareMirroring(bool enabled) {
|
| bool DisplayManager::SoftwareMirroringEnabled() const {
|
| return software_mirroring_enabled();
|
| }
|
| +
|
| +void DisplayManager::SetTouchCalibrationData(
|
| + int64_t display_id,
|
| + const TouchCalibrationData::CalibrationPointPairQuad& point_pair_quad,
|
| + const gfx::Size& display_bounds) {
|
| + bool update = false;
|
| + TouchCalibrationData calibration_data(point_pair_quad, display_bounds);
|
| + DisplayInfoList display_info_list;
|
| + for (const auto& display : active_display_list_) {
|
| + display::ManagedDisplayInfo info = GetDisplayInfo(display.id());
|
| + if (info.id() == display_id) {
|
| + info.SetTouchCalibrationData(calibration_data);
|
| + update = true;
|
| + }
|
| + display_info_list.push_back(info);
|
| + }
|
| + if (update)
|
| + UpdateDisplaysWith(display_info_list);
|
| + else
|
| + display_info_[display_id].SetTouchCalibrationData(calibration_data);
|
| +}
|
| +
|
| +void DisplayManager::ClearTouchCalibrationData(int64_t display_id) {
|
| + bool update = false;
|
| + DisplayInfoList display_info_list;
|
| + for (const auto& display : active_display_list_) {
|
| + display::ManagedDisplayInfo info = GetDisplayInfo(display.id());
|
| + if (info.id() == display_id) {
|
| + info.clear_touch_calibration_data();
|
| + update = true;
|
| + }
|
| + display_info_list.push_back(info);
|
| + }
|
| + if (update)
|
| + UpdateDisplaysWith(display_info_list);
|
| + else
|
| + display_info_[display_id].clear_touch_calibration_data();
|
| +}
|
| #endif
|
|
|
| void DisplayManager::SetDefaultMultiDisplayModeForCurrentDisplays(
|
|
|