| 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/wm/maximize_mode/maximize_mode_controller.h" | 5 #include "ash/wm/maximize_mode/maximize_mode_controller.h" |
| 6 | 6 |
| 7 #include "ash/accelerators/accelerator_controller.h" | 7 #include "ash/accelerators/accelerator_controller.h" |
| 8 #include "ash/accelerators/accelerator_table.h" | 8 #include "ash/accelerators/accelerator_table.h" |
| 9 #include "ash/accelerometer/accelerometer_controller.h" | 9 #include "ash/accelerometer/accelerometer_controller.h" |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 void MaximizeModeController::RemoveObserver(Observer* observer) { | 160 void MaximizeModeController::RemoveObserver(Observer* observer) { |
| 161 observers_.RemoveObserver(observer); | 161 observers_.RemoveObserver(observer); |
| 162 } | 162 } |
| 163 | 163 |
| 164 bool MaximizeModeController::CanEnterMaximizeMode() { | 164 bool MaximizeModeController::CanEnterMaximizeMode() { |
| 165 // If we have ever seen accelerometer data, then HandleHingeRotation may | 165 // If we have ever seen accelerometer data, then HandleHingeRotation may |
| 166 // trigger maximize mode at some point in the future. | 166 // trigger maximize mode at some point in the future. |
| 167 // The --enable-touch-view-testing switch can also mean that we may enter | 167 // The --enable-touch-view-testing switch can also mean that we may enter |
| 168 // maximize mode. | 168 // maximize mode. |
| 169 return have_seen_accelerometer_data_ || | 169 return have_seen_accelerometer_data_ || |
| 170 CommandLine::ForCurrentProcess()->HasSwitch( | 170 base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 171 switches::kAshEnableTouchViewTesting); | 171 switches::kAshEnableTouchViewTesting); |
| 172 } | 172 } |
| 173 | 173 |
| 174 void MaximizeModeController::EnableMaximizeModeWindowManager(bool enable) { | 174 void MaximizeModeController::EnableMaximizeModeWindowManager(bool enable) { |
| 175 if (enable && !maximize_mode_window_manager_.get()) { | 175 if (enable && !maximize_mode_window_manager_.get()) { |
| 176 maximize_mode_window_manager_.reset(new MaximizeModeWindowManager()); | 176 maximize_mode_window_manager_.reset(new MaximizeModeWindowManager()); |
| 177 // TODO(jonross): Move the maximize mode notifications from ShellObserver | 177 // TODO(jonross): Move the maximize mode notifications from ShellObserver |
| 178 // to MaximizeModeController::Observer | 178 // to MaximizeModeController::Observer |
| 179 Shell::GetInstance()->OnMaximizeModeStarted(); | 179 Shell::GetInstance()->OnMaximizeModeStarted(); |
| 180 } else if (!enable && maximize_mode_window_manager_.get()) { | 180 } else if (!enable && maximize_mode_window_manager_.get()) { |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 // Clear the last_lid_open_time_ for a stable reading so that there is less | 302 // Clear the last_lid_open_time_ for a stable reading so that there is less |
| 303 // chance of a delay if the lid is moved from the close state to the fully | 303 // chance of a delay if the lid is moved from the close state to the fully |
| 304 // open state very quickly. | 304 // open state very quickly. |
| 305 if (is_angle_stable) | 305 if (is_angle_stable) |
| 306 last_lid_open_time_ = base::TimeTicks(); | 306 last_lid_open_time_ = base::TimeTicks(); |
| 307 | 307 |
| 308 // Toggle maximize mode on or off when corresponding thresholds are passed. | 308 // Toggle maximize mode on or off when corresponding thresholds are passed. |
| 309 if (lid_open_past_180_ && is_angle_stable && | 309 if (lid_open_past_180_ && is_angle_stable && |
| 310 lid_angle <= kExitMaximizeModeAngle) { | 310 lid_angle <= kExitMaximizeModeAngle) { |
| 311 lid_open_past_180_ = false; | 311 lid_open_past_180_ = false; |
| 312 if (!CommandLine::ForCurrentProcess()-> | 312 if (!base::CommandLine::ForCurrentProcess()-> |
| 313 HasSwitch(switches::kAshEnableTouchViewTesting)) { | 313 HasSwitch(switches::kAshEnableTouchViewTesting)) { |
| 314 LeaveMaximizeMode(); | 314 LeaveMaximizeMode(); |
| 315 } | 315 } |
| 316 event_blocker_.reset(); | 316 event_blocker_.reset(); |
| 317 } else if (!lid_open_past_180_ && !lid_is_closed_ && | 317 } else if (!lid_open_past_180_ && !lid_is_closed_ && |
| 318 lid_angle >= kEnterMaximizeModeAngle && | 318 lid_angle >= kEnterMaximizeModeAngle && |
| 319 (is_angle_stable || !WasLidOpenedRecently())) { | 319 (is_angle_stable || !WasLidOpenedRecently())) { |
| 320 lid_open_past_180_ = true; | 320 lid_open_past_180_ = true; |
| 321 if (!CommandLine::ForCurrentProcess()-> | 321 if (!base::CommandLine::ForCurrentProcess()-> |
| 322 HasSwitch(switches::kAshEnableTouchViewTesting)) { | 322 HasSwitch(switches::kAshEnableTouchViewTesting)) { |
| 323 EnterMaximizeMode(); | 323 EnterMaximizeMode(); |
| 324 } | 324 } |
| 325 #if defined(USE_X11) | 325 #if defined(USE_X11) |
| 326 event_blocker_.reset(new ScopedDisableInternalMouseAndKeyboardX11); | 326 event_blocker_.reset(new ScopedDisableInternalMouseAndKeyboardX11); |
| 327 #endif | 327 #endif |
| 328 } | 328 } |
| 329 } | 329 } |
| 330 | 330 |
| 331 void MaximizeModeController::HandleScreenRotation(const gfx::Vector3dF& lid) { | 331 void MaximizeModeController::HandleScreenRotation(const gfx::Vector3dF& lid) { |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 return elapsed_time <= kLidRecentlyOpenedDuration; | 495 return elapsed_time <= kLidRecentlyOpenedDuration; |
| 496 } | 496 } |
| 497 | 497 |
| 498 void MaximizeModeController::SetTickClockForTest( | 498 void MaximizeModeController::SetTickClockForTest( |
| 499 scoped_ptr<base::TickClock> tick_clock) { | 499 scoped_ptr<base::TickClock> tick_clock) { |
| 500 DCHECK(tick_clock_); | 500 DCHECK(tick_clock_); |
| 501 tick_clock_ = tick_clock.Pass(); | 501 tick_clock_ = tick_clock.Pass(); |
| 502 } | 502 } |
| 503 | 503 |
| 504 } // namespace ash | 504 } // namespace ash |
| OLD | NEW |