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

Side by Side Diff: trunk/src/ash/wm/overview/window_selector.cc

Issue 59153004: Revert 233787 "Eliminate Shell::RootWindowList in favor of aura:..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 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
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/overview/window_selector.h" 5 #include "ash/wm/overview/window_selector.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/ash_switches.h" 9 #include "ash/ash_switches.h"
10 #include "ash/root_window_controller.h" 10 #include "ash/root_window_controller.h"
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 } else { 274 } else {
275 windows_.push_back(new WindowSelectorWindow(windows[i])); 275 windows_.push_back(new WindowSelectorWindow(windows[i]));
276 } 276 }
277 } 277 }
278 RemoveFocusAndSetRestoreWindow(); 278 RemoveFocusAndSetRestoreWindow();
279 UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.Items", windows_.size()); 279 UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.Items", windows_.size());
280 280
281 // Observe window activations and switchable containers on all root windows 281 // Observe window activations and switchable containers on all root windows
282 // for newly created windows during overview. 282 // for newly created windows during overview.
283 Shell::GetInstance()->activation_client()->AddObserver(this); 283 Shell::GetInstance()->activation_client()->AddObserver(this);
284 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 284 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
285 for (aura::Window::Windows::const_iterator iter = root_windows.begin(); 285 for (Shell::RootWindowList::const_iterator iter = root_windows.begin();
286 iter != root_windows.end(); ++iter) { 286 iter != root_windows.end(); ++iter) {
287 for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) { 287 for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) {
288 Shell::GetContainer(*iter, 288 Shell::GetContainer(*iter,
289 kSwitchableWindowContainerIds[i])->AddObserver(this); 289 kSwitchableWindowContainerIds[i])->AddObserver(this);
290 } 290 }
291 } 291 }
292 292
293 if (mode == WindowSelector::CYCLE) { 293 if (mode == WindowSelector::CYCLE) {
294 event_handler_.reset(new WindowSelectorEventFilter(this)); 294 event_handler_.reset(new WindowSelectorEventFilter(this));
295 if (timer_enabled_) 295 if (timer_enabled_)
296 start_overview_timer_.Reset(); 296 start_overview_timer_.Reset();
297 } else { 297 } else {
298 StartOverview(); 298 StartOverview();
299 } 299 }
300 } 300 }
301 301
302 WindowSelector::~WindowSelector() { 302 WindowSelector::~WindowSelector() {
303 ResetFocusRestoreWindow(true); 303 ResetFocusRestoreWindow(true);
304 for (std::set<aura::Window*>::iterator iter = observed_windows_.begin(); 304 for (std::set<aura::Window*>::iterator iter = observed_windows_.begin();
305 iter != observed_windows_.end(); ++iter) { 305 iter != observed_windows_.end(); ++iter) {
306 (*iter)->RemoveObserver(this); 306 (*iter)->RemoveObserver(this);
307 } 307 }
308 Shell::GetInstance()->activation_client()->RemoveObserver(this); 308 Shell::GetInstance()->activation_client()->RemoveObserver(this);
309 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 309 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
310 for (aura::Window::Windows::const_iterator iter = root_windows.begin(); 310 for (Shell::RootWindowList::const_iterator iter = root_windows.begin();
311 iter != root_windows.end(); ++iter) { 311 iter != root_windows.end(); ++iter) {
312 for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) { 312 for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) {
313 Shell::GetContainer(*iter, 313 Shell::GetContainer(*iter,
314 kSwitchableWindowContainerIds[i])->RemoveObserver(this); 314 kSwitchableWindowContainerIds[i])->RemoveObserver(this);
315 } 315 }
316 } 316 }
317 window_overview_.reset(); 317 window_overview_.reset();
318 // Clearing the window list resets the ignored_by_shelf flag on the windows. 318 // Clearing the window list resets the ignored_by_shelf flag on the windows.
319 windows_.clear(); 319 windows_.clear();
320 UpdateShelfVisibility(); 320 UpdateShelfVisibility();
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 // If the window is in the observed_windows_ list it needs to continue to be 499 // If the window is in the observed_windows_ list it needs to continue to be
500 // observed. 500 // observed.
501 if (observed_windows_.find(restore_focus_window_) == 501 if (observed_windows_.find(restore_focus_window_) ==
502 observed_windows_.end()) { 502 observed_windows_.end()) {
503 restore_focus_window_->RemoveObserver(this); 503 restore_focus_window_->RemoveObserver(this);
504 } 504 }
505 restore_focus_window_ = NULL; 505 restore_focus_window_ = NULL;
506 } 506 }
507 507
508 } // namespace ash 508 } // namespace ash
OLDNEW
« no previous file with comments | « trunk/src/ash/wm/overview/window_overview.cc ('k') | trunk/src/ash/wm/overview/window_selector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698