| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/screen_orientation_controller_chromeos.h" | 5 #include "ash/display/screen_orientation_controller_chromeos.h" |
| 6 | 6 |
| 7 #include "ash/common/ash_switches.h" | 7 #include "ash/common/ash_switches.h" |
| 8 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" | 8 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" |
| 9 #include "ash/common/wm/mru_window_tracker.h" | 9 #include "ash/common/wm/mru_window_tracker.h" |
| 10 #include "ash/common/wm/window_state.h" | 10 #include "ash/common/wm/window_state.h" |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 ->IsMaximizeModeWindowManagerEnabled() && | 217 ->IsMaximizeModeWindowManagerEnabled() && |
| 218 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 218 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 219 switches::kAshDisableScreenOrientationLock); | 219 switches::kAshDisableScreenOrientationLock); |
| 220 } | 220 } |
| 221 | 221 |
| 222 void ScreenOrientationController::ToggleUserRotationLock() { | 222 void ScreenOrientationController::ToggleUserRotationLock() { |
| 223 if (!display::Display::HasInternalDisplay()) | 223 if (!display::Display::HasInternalDisplay()) |
| 224 return; | 224 return; |
| 225 | 225 |
| 226 if (user_rotation_locked()) { | 226 if (user_rotation_locked()) { |
| 227 user_locked_orientation_ = blink::WebScreenOrientationLockAny; | 227 SetLockToOrientation(blink::WebScreenOrientationLockAny); |
| 228 } else { | 228 } else { |
| 229 display::Display::Rotation current_rotation = | 229 display::Display::Rotation current_rotation = |
| 230 WmShell::Get() | 230 WmShell::Get() |
| 231 ->GetDisplayInfo(display::Display::InternalDisplayId()) | 231 ->GetDisplayInfo(display::Display::InternalDisplayId()) |
| 232 .GetActiveRotation(); | 232 .GetActiveRotation(); |
| 233 user_locked_orientation_ = RotationToOrientation(current_rotation); | 233 SetLockToRotation(current_rotation); |
| 234 } | 234 } |
| 235 base::AutoReset<bool> auto_ignore_display_configuration_updates( | 235 } |
| 236 &ignore_display_configuration_updates_, true); | |
| 237 Shell::GetInstance()->display_manager()->RegisterDisplayRotationProperties( | |
| 238 user_rotation_locked(), OrientationToRotation(user_locked_orientation_)); | |
| 239 | 236 |
| 240 ApplyLockForActiveWindow(); | 237 void ScreenOrientationController::SetLockToRotation( |
| 241 for (auto& observer : observers_) | 238 display::Display::Rotation rotation) { |
| 242 observer.OnUserRotationLockChanged(); | 239 if (!display::Display::HasInternalDisplay()) |
| 240 return; |
| 241 |
| 242 SetLockToOrientation(RotationToOrientation(rotation)); |
| 243 } | 243 } |
| 244 | 244 |
| 245 void ScreenOrientationController::OnWindowActivated(ActivationReason reason, | 245 void ScreenOrientationController::OnWindowActivated(ActivationReason reason, |
| 246 aura::Window* gained_active, | 246 aura::Window* gained_active, |
| 247 aura::Window* lost_active) { | 247 aura::Window* lost_active) { |
| 248 ApplyLockForActiveWindow(); | 248 ApplyLockForActiveWindow(); |
| 249 } | 249 } |
| 250 | 250 |
| 251 void ScreenOrientationController::OnWindowDestroying(aura::Window* window) { | 251 void ScreenOrientationController::OnWindowDestroying(aura::Window* window) { |
| 252 UnlockOrientationForWindow(WmWindow::Get(window)); | 252 UnlockOrientationForWindow(WmWindow::Get(window)); |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 | 350 |
| 351 void ScreenOrientationController::SetRotationLockedInternal( | 351 void ScreenOrientationController::SetRotationLockedInternal( |
| 352 bool rotation_locked) { | 352 bool rotation_locked) { |
| 353 if (rotation_locked_ == rotation_locked) | 353 if (rotation_locked_ == rotation_locked) |
| 354 return; | 354 return; |
| 355 rotation_locked_ = rotation_locked; | 355 rotation_locked_ = rotation_locked; |
| 356 if (!rotation_locked_) | 356 if (!rotation_locked_) |
| 357 rotation_locked_orientation_ = blink::WebScreenOrientationLockAny; | 357 rotation_locked_orientation_ = blink::WebScreenOrientationLockAny; |
| 358 } | 358 } |
| 359 | 359 |
| 360 void ScreenOrientationController::SetLockToOrientation( |
| 361 blink::WebScreenOrientationLockType orientation) { |
| 362 user_locked_orientation_ = orientation; |
| 363 base::AutoReset<bool> auto_ignore_display_configuration_updates( |
| 364 &ignore_display_configuration_updates_, true); |
| 365 Shell::GetInstance()->display_manager()->RegisterDisplayRotationProperties( |
| 366 user_rotation_locked(), OrientationToRotation(user_locked_orientation_)); |
| 367 |
| 368 ApplyLockForActiveWindow(); |
| 369 for (auto& observer : observers_) |
| 370 observer.OnUserRotationLockChanged(); |
| 371 } |
| 372 |
| 360 void ScreenOrientationController::LockRotation( | 373 void ScreenOrientationController::LockRotation( |
| 361 display::Display::Rotation rotation, | 374 display::Display::Rotation rotation, |
| 362 display::Display::RotationSource source) { | 375 display::Display::RotationSource source) { |
| 363 SetRotationLockedInternal(true); | 376 SetRotationLockedInternal(true); |
| 364 SetDisplayRotation(rotation, source); | 377 SetDisplayRotation(rotation, source); |
| 365 } | 378 } |
| 366 | 379 |
| 367 void ScreenOrientationController::LockRotationToOrientation( | 380 void ScreenOrientationController::LockRotationToOrientation( |
| 368 blink::WebScreenOrientationLockType lock_orientation) { | 381 blink::WebScreenOrientationLockType lock_orientation) { |
| 369 rotation_locked_orientation_ = lock_orientation; | 382 rotation_locked_orientation_ = lock_orientation; |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 } | 565 } |
| 553 | 566 |
| 554 bool ScreenOrientationController::CanRotateInLockedState() { | 567 bool ScreenOrientationController::CanRotateInLockedState() { |
| 555 return rotation_locked_orientation_ == | 568 return rotation_locked_orientation_ == |
| 556 blink::WebScreenOrientationLockLandscape || | 569 blink::WebScreenOrientationLockLandscape || |
| 557 rotation_locked_orientation_ == | 570 rotation_locked_orientation_ == |
| 558 blink::WebScreenOrientationLockPortrait; | 571 blink::WebScreenOrientationLockPortrait; |
| 559 } | 572 } |
| 560 | 573 |
| 561 } // namespace ash | 574 } // namespace ash |
| OLD | NEW |