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 43663a511df5d730862a028d5aa661bddf537ebe..6444bcc505248c88a4b391c63b0d73b9818e7334 100644 |
--- a/ash/display/screen_orientation_controller_chromeos.cc |
+++ b/ash/display/screen_orientation_controller_chromeos.cc |
@@ -232,14 +232,15 @@ void ScreenOrientationController::ToggleUserRotationLock() { |
.GetActiveRotation(); |
user_locked_orientation_ = RotationToOrientation(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_)); |
+ SetLockToOrientation(user_locked_orientation_); |
+} |
- ApplyLockForActiveWindow(); |
- for (auto& observer : observers_) |
- observer.OnUserRotationLockChanged(); |
+void ScreenOrientationController::SetLockToRotation( |
+ display::Display::Rotation rotation) { |
+ if (!display::Display::HasInternalDisplay()) |
+ return; |
+ |
+ SetLockToOrientation(user_locked_orientation_); |
} |
void ScreenOrientationController::OnWindowActivated(ActivationReason reason, |
@@ -357,6 +358,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) { |