| Index: ash/display/screen_orientation_controller_chromeos.h
|
| diff --git a/ash/display/screen_orientation_controller_chromeos.h b/ash/display/screen_orientation_controller_chromeos.h
|
| index 118952314e7509b189b6e1cd70adb7f56f3fdf7f..069d5177930178938e58920975fd900ae3edb449 100644
|
| --- a/ash/display/screen_orientation_controller_chromeos.h
|
| +++ b/ash/display/screen_orientation_controller_chromeos.h
|
| @@ -20,6 +20,9 @@
|
| #include "ui/wm/public/activation_change_observer.h"
|
|
|
| namespace ash {
|
| +namespace test {
|
| +class ScreenOrientationControllerTestApi;
|
| +}
|
|
|
| // Implements ChromeOS specific functionality for ScreenOrientationProvider.
|
| class ASH_EXPORT ScreenOrientationController
|
| @@ -33,8 +36,8 @@ class ASH_EXPORT ScreenOrientationController
|
| // rotation lock.
|
| class Observer {
|
| public:
|
| - // Invoked when rotation is locked or unlocked.
|
| - virtual void OnRotationLockChanged(bool rotation_locked) {}
|
| + // Invoked when rotation is locked or unlocked by a user.
|
| + virtual void OnUserRotationLockChanged() {}
|
|
|
| protected:
|
| virtual ~Observer() {}
|
| @@ -66,15 +69,15 @@ class ASH_EXPORT ScreenOrientationController
|
| // rotate the display.
|
| bool rotation_locked() const { return rotation_locked_; }
|
|
|
| - // If |rotation_locked| future accelerometer updates should not change the
|
| - // display rotation.
|
| - void SetRotationLocked(bool rotation_locked);
|
| + bool user_rotation_locked() const {
|
| + return user_locked_orientation_ != blink::WebScreenOrientationLockAny;
|
| + }
|
|
|
| - // Sets the display rotation for the given |source|. The new |rotation| will
|
| - // also become active. Display changed notifications are surpressed for this
|
| - // change.
|
| - void SetDisplayRotation(display::Display::Rotation rotation,
|
| - display::Display::RotationSource source);
|
| + // Trun on/off the user rotation lock. When turned on, it will lock
|
| + // the orientation to the current orientation.
|
| + // |user_rotation_locked()| method returns the current state of the
|
| + // user rotation lock.
|
| + void ToggleUserRotationLock();
|
|
|
| // aura::client::ActivationChangeObserver:
|
| void OnWindowActivated(ActivationReason reason,
|
| @@ -97,6 +100,16 @@ class ASH_EXPORT ScreenOrientationController
|
| void OnMaximizeModeEnded() override;
|
|
|
| private:
|
| + friend class test::ScreenOrientationControllerTestApi;
|
| +
|
| + // Sets the display rotation for the given |source|. The new |rotation| will
|
| + // also become active. Display changed notifications are surpressed for this
|
| + // change.
|
| + void SetDisplayRotation(display::Display::Rotation rotation,
|
| + display::Display::RotationSource source);
|
| +
|
| + void SetRotationLockedInternal(bool rotation_locked);
|
| +
|
| // Sets the display rotation to |rotation|. Future accelerometer updates
|
| // should not be used to change the rotation. SetRotationLocked(false) removes
|
| // the rotation lock.
|
| @@ -166,6 +179,10 @@ class ASH_EXPORT ScreenOrientationController
|
| // restored upon exiting maximize mode.
|
| display::Display::Rotation user_rotation_;
|
|
|
| + // The orientation of the device locked by the user.
|
| + blink::WebScreenOrientationLockType user_locked_orientation_ =
|
| + blink::WebScreenOrientationLockAny;
|
| +
|
| // The current rotation set by ScreenOrientationController for the internal
|
| // display.
|
| display::Display::Rotation current_rotation_;
|
|
|