Chromium Code Reviews| Index: ui/display/manager/display_manager.cc |
| diff --git a/ui/display/manager/display_manager.cc b/ui/display/manager/display_manager.cc |
| index 5279bc938fefede662530de2835961ad30bddc79..bd49dc67f816916f7f797e89ee70583dcdf6ab73 100644 |
| --- a/ui/display/manager/display_manager.cc |
| +++ b/ui/display/manager/display_manager.cc |
| @@ -392,7 +392,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); |
| @@ -413,6 +414,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 |
| @@ -982,6 +985,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); |
| + } |
|
oshima
2016/12/02 22:33:41
can should be able to do somethign like
Display*
malaykeshav
2016/12/03 02:01:28
We would still need to iterate through |active_dis
oshima
2016/12/05 20:43:21
ah right. please disregard this.
|
| + 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( |