OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/display/display_manager.h" | 5 #include "ash/display/display_manager.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 DisplayInfoList display_info_list; | 386 DisplayInfoList display_info_list; |
387 for (DisplayList::const_iterator iter = displays_.begin(); | 387 for (DisplayList::const_iterator iter = displays_.begin(); |
388 iter != displays_.end(); ++iter) { | 388 iter != displays_.end(); ++iter) { |
389 display_info_list.push_back(GetDisplayInfo(iter->id())); | 389 display_info_list.push_back(GetDisplayInfo(iter->id())); |
390 } | 390 } |
391 AddMirrorDisplayInfoIfAny(&display_info_list); | 391 AddMirrorDisplayInfoIfAny(&display_info_list); |
392 UpdateDisplays(display_info_list); | 392 UpdateDisplays(display_info_list); |
393 } | 393 } |
394 | 394 |
395 void DisplayManager::SetDisplayRotation(int64 display_id, | 395 void DisplayManager::SetDisplayRotation(int64 display_id, |
396 gfx::Display::Rotation rotation) { | 396 gfx::Display::Rotation rotation, |
| 397 ui::RotationSource source) { |
397 DisplayInfoList display_info_list; | 398 DisplayInfoList display_info_list; |
398 for (DisplayList::const_iterator iter = displays_.begin(); | 399 for (DisplayList::const_iterator iter = displays_.begin(); |
399 iter != displays_.end(); ++iter) { | 400 iter != displays_.end(); ++iter) { |
400 DisplayInfo info = GetDisplayInfo(iter->id()); | 401 DisplayInfo info = GetDisplayInfo(iter->id()); |
401 if (info.id() == display_id) { | 402 if (info.id() == display_id) { |
402 if (info.rotation() == rotation) | 403 if (info.rotation() == rotation) |
403 return; | 404 return; |
404 info.set_rotation(rotation); | 405 info.SetRotation(rotation, source); |
405 } | 406 } |
406 display_info_list.push_back(info); | 407 display_info_list.push_back(info); |
407 } | 408 } |
408 AddMirrorDisplayInfoIfAny(&display_info_list); | 409 AddMirrorDisplayInfoIfAny(&display_info_list); |
409 if (virtual_keyboard_root_window_enabled() && | 410 if (virtual_keyboard_root_window_enabled() && |
410 display_id == non_desktop_display_.id()) { | 411 display_id == non_desktop_display_.id()) { |
411 DisplayInfo info = GetDisplayInfo(display_id); | 412 DisplayInfo info = GetDisplayInfo(display_id); |
412 info.set_rotation(rotation); | 413 info.SetRotation(rotation, source); |
413 display_info_list.push_back(info); | 414 display_info_list.push_back(info); |
414 } | 415 } |
415 UpdateDisplays(display_info_list); | 416 UpdateDisplays(display_info_list); |
416 } | 417 } |
417 | 418 |
418 void DisplayManager::SetDisplayUIScale(int64 display_id, | 419 void DisplayManager::SetDisplayUIScale(int64 display_id, |
419 float ui_scale) { | 420 float ui_scale) { |
420 if (!IsDisplayUIScalingEnabled() || | 421 if (!IsDisplayUIScalingEnabled() || |
421 gfx::Display::InternalDisplayId() != display_id) { | 422 gfx::Display::InternalDisplayId() != display_id) { |
422 return; | 423 return; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 void DisplayManager::RegisterDisplayProperty( | 469 void DisplayManager::RegisterDisplayProperty( |
469 int64 display_id, | 470 int64 display_id, |
470 gfx::Display::Rotation rotation, | 471 gfx::Display::Rotation rotation, |
471 float ui_scale, | 472 float ui_scale, |
472 const gfx::Insets* overscan_insets, | 473 const gfx::Insets* overscan_insets, |
473 const gfx::Size& resolution_in_pixels, | 474 const gfx::Size& resolution_in_pixels, |
474 ui::ColorCalibrationProfile color_profile) { | 475 ui::ColorCalibrationProfile color_profile) { |
475 if (display_info_.find(display_id) == display_info_.end()) | 476 if (display_info_.find(display_id) == display_info_.end()) |
476 display_info_[display_id] = DisplayInfo(display_id, std::string(), false); | 477 display_info_[display_id] = DisplayInfo(display_id, std::string(), false); |
477 | 478 |
478 display_info_[display_id].set_rotation(rotation); | 479 display_info_[display_id].SetRotation(rotation, ui::USER); |
479 display_info_[display_id].SetColorProfile(color_profile); | 480 display_info_[display_id].SetColorProfile(color_profile); |
480 // Just in case the preference file was corrupted. | 481 // Just in case the preference file was corrupted. |
481 if (0.5f <= ui_scale && ui_scale <= 2.0f) | 482 if (0.5f <= ui_scale && ui_scale <= 2.0f) |
482 display_info_[display_id].set_configured_ui_scale(ui_scale); | 483 display_info_[display_id].set_configured_ui_scale(ui_scale); |
483 if (overscan_insets) | 484 if (overscan_insets) |
484 display_info_[display_id].SetOverscanInsets(*overscan_insets); | 485 display_info_[display_id].SetOverscanInsets(*overscan_insets); |
485 if (!resolution_in_pixels.IsEmpty()) { | 486 if (!resolution_in_pixels.IsEmpty()) { |
486 // Default refresh rate, until OnNativeDisplaysChanged() updates us with the | 487 // Default refresh rate, until OnNativeDisplaysChanged() updates us with the |
487 // actual display info, is 60 Hz. | 488 // actual display info, is 60 Hz. |
488 display_modes_[display_id] = | 489 display_modes_[display_id] = |
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1115 new_secondary_origin.Offset(-secondary_bounds.width(), offset); | 1116 new_secondary_origin.Offset(-secondary_bounds.width(), offset); |
1116 break; | 1117 break; |
1117 } | 1118 } |
1118 gfx::Insets insets = secondary_display->GetWorkAreaInsets(); | 1119 gfx::Insets insets = secondary_display->GetWorkAreaInsets(); |
1119 secondary_display->set_bounds( | 1120 secondary_display->set_bounds( |
1120 gfx::Rect(new_secondary_origin, secondary_bounds.size())); | 1121 gfx::Rect(new_secondary_origin, secondary_bounds.size())); |
1121 secondary_display->UpdateWorkAreaFromInsets(insets); | 1122 secondary_display->UpdateWorkAreaFromInsets(insets); |
1122 } | 1123 } |
1123 | 1124 |
1124 } // namespace ash | 1125 } // namespace ash |
OLD | NEW |