• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "ash/wm/window_state_util.h"
6 
7 #include "ash/wm/window_state.h"
8 #include "ash/wm/window_state_delegate.h"
9 #include "ui/aura/client/aura_constants.h"
10 
11 namespace ash {
12 namespace wm {
13 
ToggleFullScreen(wm::WindowState * window_state,WindowStateDelegate * delegate)14 void ToggleFullScreen(wm::WindowState* window_state,
15                       WindowStateDelegate* delegate) {
16   // Window which cannot be maximized should not be full screen'ed.
17   // It can, however, be restored if it was full screen'ed.
18   bool is_fullscreen = window_state->IsFullscreen();
19   if (!is_fullscreen && !window_state->CanMaximize())
20     return;
21 
22   if (delegate && delegate->ToggleFullscreen(window_state))
23     return;
24 
25   if (is_fullscreen) {
26     window_state->Restore();
27   } else {
28     // Set the property to activate full screen.
29     window_state->window()->SetProperty(aura::client::kShowStateKey,
30                                         ui::SHOW_STATE_FULLSCREEN);
31   }
32 }
33 
34 }  // namespace wm
35 }  // namespace ash
36