blob: e5d6f8e1cdd9cf4c3207e3cb1c805c9232712e53 [file] [log] [blame]
Bo Liu5c02ac12014-05-01 10:37:37 -07001// 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
11namespace ash {
12namespace wm {
13
14void 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