// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ash/wm/window_state_util.h" #include "ash/wm/window_state.h" #include "ash/wm/window_state_delegate.h" #include "ui/aura/client/aura_constants.h" namespace ash { namespace wm { void ToggleFullScreen(wm::WindowState* window_state, WindowStateDelegate* delegate) { // Window which cannot be maximized should not be full screen'ed. // It can, however, be restored if it was full screen'ed. bool is_fullscreen = window_state->IsFullscreen(); if (!is_fullscreen && !window_state->CanMaximize()) return; if (delegate && delegate->ToggleFullscreen(window_state)) return; if (is_fullscreen) { window_state->Restore(); } else { // Set the property to activate full screen. window_state->window()->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); } } } // namespace wm } // namespace ash