Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Unified Diff: trunk/src/ash/wm/maximize_mode/maximize_mode_controller.cc

Issue 271133002: Revert 268794 "Lock Rotation when screen is manually rotated" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/ash/wm/maximize_mode/maximize_mode_controller.cc
===================================================================
--- trunk/src/ash/wm/maximize_mode/maximize_mode_controller.cc (revision 269259)
+++ trunk/src/ash/wm/maximize_mode/maximize_mode_controller.cc (working copy)
@@ -141,10 +141,12 @@
if (maximize_mode_engaged &&
angle > kFullyOpenAngleErrorTolerance &&
angle < kExitMaximizeModeAngle) {
- LeaveMaximizeMode();
+ Shell::GetInstance()->EnableMaximizeModeWindowManager(false);
+ event_blocker_.reset();
} else if (!maximize_mode_engaged &&
angle > kEnterMaximizeModeAngle) {
- EnterMaximizeMode();
+ Shell::GetInstance()->EnableMaximizeModeWindowManager(true);
+ event_blocker_.reset(new MaximizeModeEventBlocker);
}
}
@@ -152,14 +154,31 @@
bool maximize_mode_engaged =
Shell::GetInstance()->IsMaximizeModeWindowManagerEnabled();
- if (!maximize_mode_engaged || rotation_locked_)
- return;
-
DisplayManager* display_manager =
Shell::GetInstance()->display_manager();
gfx::Display::Rotation current_rotation = display_manager->GetDisplayInfo(
gfx::Display::InternalDisplayId()).rotation();
+ // If maximize mode is not engaged, ensure the screen is not rotated and
+ // do not rotate to match the current device orientation.
+ if (!maximize_mode_engaged) {
+ if (current_rotation != gfx::Display::ROTATE_0) {
+ // TODO(flackr): Currently this will prevent setting a manual rotation on
+ // the screen of a device with an accelerometer, this should only set it
+ // back to ROTATE_0 if it was last set by the accelerometer.
+ // Also, SetDisplayRotation will save the setting to the local store,
+ // this should be stored in a way that we can distinguish what the
+ // rotation was set by.
+ display_manager->SetDisplayRotation(gfx::Display::InternalDisplayId(),
+ gfx::Display::ROTATE_0);
+ }
+ rotation_locked_ = false;
+ return;
+ }
+
+ if (rotation_locked_)
+ return;
+
// After determining maximize mode state, determine if the screen should
// be rotated.
gfx::Vector3dF lid_flattened(lid.x(), lid.y(), 0.0f);
@@ -214,29 +233,4 @@
}
}
-void MaximizeModeController::EnterMaximizeMode() {
- // TODO(jonross): Create a property on the display to track user rotations.
- // We should lock based on this property. Furthermore we should apply the
- // lock if the user changes the display settings while we are in maximize
- // mode. https://crbug.com/369505
- DisplayManager* display_manager = Shell::GetInstance()->display_manager();
- gfx::Display::Rotation current_rotation = display_manager->
- GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation();
- rotation_locked_ = current_rotation != gfx::Display::ROTATE_0;
- Shell::GetInstance()->EnableMaximizeModeWindowManager(true);
- event_blocker_.reset(new MaximizeModeEventBlocker);
-}
-
-void MaximizeModeController::LeaveMaximizeMode() {
- DisplayManager* display_manager = Shell::GetInstance()->display_manager();
- gfx::Display::Rotation current_rotation = display_manager->
- GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation();
- if (!rotation_locked_ && current_rotation != gfx::Display::ROTATE_0) {
- display_manager->SetDisplayRotation(gfx::Display::InternalDisplayId(),
- gfx::Display::ROTATE_0);
- }
- Shell::GetInstance()->EnableMaximizeModeWindowManager(false);
- event_blocker_.reset();
-}
-
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698