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

Side by Side Diff: ash/wm/window_positioner.cc

Issue 115153002: wm: public window_types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ozone deps Created 7 years 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/window_manager_unittest.cc ('k') | ash/wm/window_state.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/window_positioner.h" 5 #include "ash/wm/window_positioner.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/screen_ash.h" 8 #include "ash/screen_ash.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 172
173 int index = (iter == windows.end()) ? 0 : (iter - windows.begin()); 173 int index = (iter == windows.end()) ? 0 : (iter - windows.begin());
174 174
175 // Scan the cycle list backwards to see which is the second topmost window 175 // Scan the cycle list backwards to see which is the second topmost window
176 // (and so on). Note that we might cycle a few indices twice if there is no 176 // (and so on). Note that we might cycle a few indices twice if there is no
177 // suitable window. However - since the list is fairly small this should be 177 // suitable window. However - since the list is fairly small this should be
178 // very fast anyways. 178 // very fast anyways.
179 aura::Window* found = NULL; 179 aura::Window* found = NULL;
180 for (int i = index + windows.size(); i >= 0; i--) { 180 for (int i = index + windows.size(); i >= 0; i--) {
181 aura::Window* window = windows[i % windows.size()]; 181 aura::Window* window = windows[i % windows.size()];
182 if (window != exclude && 182 if (window != exclude && window->type() == ui::wm::WINDOW_TYPE_NORMAL &&
183 window->type() == aura::client::WINDOW_TYPE_NORMAL && 183 window->GetRootWindow() == root_window && window->TargetVisibility() &&
184 window->GetRootWindow() == root_window &&
185 window->TargetVisibility() &&
186 wm::GetWindowState(window)->window_position_managed()) { 184 wm::GetWindowState(window)->window_position_managed()) {
187 if (found && found != window) { 185 if (found && found != window) {
188 // no need to check !signle_window because the function must have 186 // no need to check !signle_window because the function must have
189 // been already returned in the "if (!single_window)" below. 187 // been already returned in the "if (!single_window)" below.
190 *single_window = false; 188 *single_window = false;
191 return found; 189 return found;
192 } 190 }
193 found = window; 191 found = window;
194 // If there is no need to check single window, return now. 192 // If there is no need to check single window, return now.
195 if (!single_window) 193 if (!single_window)
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 // If the alignment was pushing the window out of the screen, we ignore the 536 // If the alignment was pushing the window out of the screen, we ignore the
539 // alignment for that call. 537 // alignment for that call.
540 if (abs(pos.right() - work_area.right()) < grid) 538 if (abs(pos.right() - work_area.right()) < grid)
541 x = work_area.right() - w; 539 x = work_area.right() - w;
542 if (abs(pos.bottom() - work_area.bottom()) < grid) 540 if (abs(pos.bottom() - work_area.bottom()) < grid)
543 y = work_area.bottom() - h; 541 y = work_area.bottom() - h;
544 return gfx::Rect(x, y, w, h); 542 return gfx::Rect(x, y, w, h);
545 } 543 }
546 544
547 } // namespace ash 545 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/window_manager_unittest.cc ('k') | ash/wm/window_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698