Home | History | Annotate | Download | only in wm
      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 
     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