Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Side by Side Diff: ui/aura_shell/show_state_controller.cc

Issue 8400063: Move maximize/fullscreen/restore to shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ready for review Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 "ui/aura_shell/show_state_controller.h"
6
7 #include "ui/aura/aura_constants.h"
8 #include "ui/aura/window.h"
9 #include "ui/aura_shell/default_container_layout_manager.h"
10 #include "ui/aura_shell/workspace/workspace.h"
11 #include "ui/aura_shell/workspace/workspace_manager.h"
12 #include "ui/base/ui_base_types.h"
13
14 namespace aura_shell {
15 namespace internal {
16
17 ShowStateController::ShowStateController(
18 DefaultContainerLayoutManager* layout_manager)
19 : layout_manager_(layout_manager) {
20 }
21
22 ShowStateController::~ShowStateController() {
23 }
24
25 void ShowStateController::OnPropertyChanged(aura::Window* window,
26 const char* name,
27 void* old) OVERRIDE {
28 if (name != aura::kShowStateKey)
29 return;
30 if (window->GetIntProperty(name) == ui::SHOW_STATE_NORMAL) {
31 // Restore the size of window first, then let Workspace layout the window.
32 gfx::Rect* restore =
33 static_cast<gfx::Rect*>(window->GetProperty(aura::kRestoreBoundsKey));
sky 2011/10/31 23:17:34 This is accessed in a number of places. Could you
oshima 2011/11/01 00:40:33 I thought about it but didn't do it (for now) for
34 window->SetProperty(aura::kRestoreBoundsKey, NULL);
35 if (restore) window->SetBounds(*restore);
sky 2011/10/31 23:17:34 split into two lines.
oshima 2011/11/01 00:40:33 Done.
36 delete restore;
37 } else if (old == reinterpret_cast<void*>(ui::SHOW_STATE_NORMAL)) {
38 // Store the restore bounds only if previous state is normal.
39 DCHECK(window->GetProperty(aura::kRestoreBoundsKey) == NULL);
40 window->SetProperty(aura::kRestoreBoundsKey,
41 new gfx::Rect(window->GetTargetBounds()));
42 }
43
44 layout_manager_->set_ignore_calculate_bounds(true);
45 layout_manager_->workspace_manager()->FindBy(window)->Layout(NULL, window);
46 layout_manager_->set_ignore_calculate_bounds(false);
47 }
48
49 } // namespace internal
50 } // namespace aura_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698