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

Side by Side Diff: ash/wm/workspace/workspace_manager.cc

Issue 9515003: Fix the full screen switching browser window dipping below launcher bar issue. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make SetWorkSpaceBounds private. Created 8 years, 9 months 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
« no previous file with comments | « ash/wm/workspace/workspace_manager.h ('k') | ash/wm/workspace/workspace_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/wm/workspace/workspace_manager.h" 5 #include "ash/wm/workspace/workspace_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/wm/property_util.h" 10 #include "ash/wm/property_util.h"
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 void WorkspaceManager::SetOverview(bool overview) { 164 void WorkspaceManager::SetOverview(bool overview) {
165 if (is_overview_ == overview) 165 if (is_overview_ == overview)
166 return; 166 return;
167 NOTIMPLEMENTED(); 167 NOTIMPLEMENTED();
168 } 168 }
169 169
170 void WorkspaceManager::SetWorkspaceSize(const gfx::Size& workspace_size) { 170 void WorkspaceManager::SetWorkspaceSize(const gfx::Size& workspace_size) {
171 if (workspace_size == workspace_size_) 171 if (workspace_size == workspace_size_)
172 return; 172 return;
173 workspace_size_ = workspace_size; 173 workspace_size_ = workspace_size;
174 for (Workspaces::const_iterator i = workspaces_.begin(); 174 SetWorkspaceBounds();
175 i != workspaces_.end(); ++i) { 175 }
176 (*i)->SetBounds(GetWorkAreaBounds()); 176
177 } 177 void WorkspaceManager::OnScreenWorkAreaInsetsChanged() {
178 SetWorkspaceBounds();
178 } 179 }
179 180
180 gfx::Rect WorkspaceManager::AlignBoundsToGrid(const gfx::Rect& bounds) { 181 gfx::Rect WorkspaceManager::AlignBoundsToGrid(const gfx::Rect& bounds) {
181 if (grid_size_ <= 1) 182 if (grid_size_ <= 1)
182 return bounds; 183 return bounds;
183 return AlignRectToGrid(bounds, grid_size_); 184 return AlignRectToGrid(bounds, grid_size_);
184 } 185 }
185 186
186 void WorkspaceManager::OnWindowPropertyChanged(aura::Window* window, 187 void WorkspaceManager::OnWindowPropertyChanged(aura::Window* window,
187 const void* key, 188 const void* key,
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 352
352 void WorkspaceManager::SetFullScreenOrMaximizedBounds(aura::Window* window) { 353 void WorkspaceManager::SetFullScreenOrMaximizedBounds(aura::Window* window) {
353 if (!GetRestoreBounds(window)) 354 if (!GetRestoreBounds(window))
354 SetRestoreBounds(window, window->GetTargetBounds()); 355 SetRestoreBounds(window, window->GetTargetBounds());
355 if (wm::IsWindowMaximized(window)) 356 if (wm::IsWindowMaximized(window))
356 SetWindowBounds(window, GetWorkAreaBounds()); 357 SetWindowBounds(window, GetWorkAreaBounds());
357 else if (wm::IsWindowFullscreen(window)) 358 else if (wm::IsWindowFullscreen(window))
358 SetWindowBounds(window, gfx::Screen::GetMonitorAreaNearestWindow(window)); 359 SetWindowBounds(window, gfx::Screen::GetMonitorAreaNearestWindow(window));
359 } 360 }
360 361
362 void WorkspaceManager::SetWorkspaceBounds() {
363 for (Workspaces::const_iterator i = workspaces_.begin();
364 i != workspaces_.end(); ++i) {
365 (*i)->SetBounds(GetWorkAreaBounds());
366 }
367 }
368
361 void WorkspaceManager::OnTypeOfWorkspacedNeededChanged(aura::Window* window) { 369 void WorkspaceManager::OnTypeOfWorkspacedNeededChanged(aura::Window* window) {
362 DCHECK(IsManagedWindow(window)); 370 DCHECK(IsManagedWindow(window));
363 Workspace* current_workspace = FindBy(window); 371 Workspace* current_workspace = FindBy(window);
364 DCHECK(current_workspace); 372 DCHECK(current_workspace);
365 Workspace* new_workspace = NULL; 373 Workspace* new_workspace = NULL;
366 if (Workspace::TypeForWindow(window) == Workspace::TYPE_MAXIMIZED) { 374 if (Workspace::TypeForWindow(window) == Workspace::TYPE_MAXIMIZED) {
367 // Unmaximized -> maximized; create a new workspace. 375 // Unmaximized -> maximized; create a new workspace.
368 SetRestoreBounds(window, window->bounds()); 376 SetRestoreBounds(window, window->bounds());
369 current_workspace->RemoveWindow(window); 377 current_workspace->RemoveWindow(window);
370 new_workspace = CreateWorkspace(Workspace::TYPE_MAXIMIZED); 378 new_workspace = CreateWorkspace(Workspace::TYPE_MAXIMIZED);
(...skipping 30 matching lines...) Expand all
401 if (type == Workspace::TYPE_MAXIMIZED) 409 if (type == Workspace::TYPE_MAXIMIZED)
402 workspace = new MaximizedWorkspace(this); 410 workspace = new MaximizedWorkspace(this);
403 else 411 else
404 workspace = new ManagedWorkspace(this); 412 workspace = new ManagedWorkspace(this);
405 AddWorkspace(workspace); 413 AddWorkspace(workspace);
406 return workspace; 414 return workspace;
407 } 415 }
408 416
409 } // namespace internal 417 } // namespace internal
410 } // namespace ash 418 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/workspace/workspace_manager.h ('k') | ash/wm/workspace/workspace_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698