| Index: ash/display/screen_orientation_controller_chromeos.cc
|
| diff --git a/ash/display/screen_orientation_controller_chromeos.cc b/ash/display/screen_orientation_controller_chromeos.cc
|
| index 9a620129943f5e2e9176befb4a882be0eefae89e..b10a9b846dbdae3add000df5f93b46977b7ab8fb 100644
|
| --- a/ash/display/screen_orientation_controller_chromeos.cc
|
| +++ b/ash/display/screen_orientation_controller_chromeos.cc
|
| @@ -223,22 +223,22 @@ void ScreenOrientationController::ToggleUserRotationLock() {
|
| return;
|
|
|
| if (user_rotation_locked()) {
|
| - user_locked_orientation_ = blink::WebScreenOrientationLockAny;
|
| + SetLockToOrientation(blink::WebScreenOrientationLockAny);
|
| } else {
|
| display::Display::Rotation current_rotation =
|
| WmShell::Get()
|
| ->GetDisplayInfo(display::Display::InternalDisplayId())
|
| .GetActiveRotation();
|
| - user_locked_orientation_ = RotationToOrientation(current_rotation);
|
| + SetLockToRotation(current_rotation);
|
| }
|
| - base::AutoReset<bool> auto_ignore_display_configuration_updates(
|
| - &ignore_display_configuration_updates_, true);
|
| - Shell::GetInstance()->display_manager()->RegisterDisplayRotationProperties(
|
| - user_rotation_locked(), OrientationToRotation(user_locked_orientation_));
|
| +}
|
|
|
| - ApplyLockForActiveWindow();
|
| - for (auto& observer : observers_)
|
| - observer.OnUserRotationLockChanged();
|
| +void ScreenOrientationController::SetLockToRotation(
|
| + display::Display::Rotation rotation) {
|
| + if (!display::Display::HasInternalDisplay())
|
| + return;
|
| +
|
| + SetLockToOrientation(RotationToOrientation(rotation));
|
| }
|
|
|
| void ScreenOrientationController::OnWindowActivated(WmWindow* gained_active,
|
| @@ -355,6 +355,19 @@ void ScreenOrientationController::SetRotationLockedInternal(
|
| rotation_locked_orientation_ = blink::WebScreenOrientationLockAny;
|
| }
|
|
|
| +void ScreenOrientationController::SetLockToOrientation(
|
| + blink::WebScreenOrientationLockType orientation) {
|
| + user_locked_orientation_ = orientation;
|
| + base::AutoReset<bool> auto_ignore_display_configuration_updates(
|
| + &ignore_display_configuration_updates_, true);
|
| + Shell::GetInstance()->display_manager()->RegisterDisplayRotationProperties(
|
| + user_rotation_locked(), OrientationToRotation(user_locked_orientation_));
|
| +
|
| + ApplyLockForActiveWindow();
|
| + for (auto& observer : observers_)
|
| + observer.OnUserRotationLockChanged();
|
| +}
|
| +
|
| void ScreenOrientationController::LockRotation(
|
| display::Display::Rotation rotation,
|
| display::Display::RotationSource source) {
|
|
|