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

Side by Side Diff: ash/display/display_controller.cc

Issue 24020002: Move GetRootWindowController() to root_window_controller.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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
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/display/display_controller.h" 5 #include "ash/display/display_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
11 #include "ash/ash_switches.h" 11 #include "ash/ash_switches.h"
12 #include "ash/display/display_layout_store.h" 12 #include "ash/display/display_layout_store.h"
13 #include "ash/display/display_manager.h" 13 #include "ash/display/display_manager.h"
14 #include "ash/display/mirror_window_controller.h" 14 #include "ash/display/mirror_window_controller.h"
15 #include "ash/display/root_window_transformers.h" 15 #include "ash/display/root_window_transformers.h"
16 #include "ash/host/root_window_host_factory.h" 16 #include "ash/host/root_window_host_factory.h"
17 #include "ash/root_window_controller.h" 17 #include "ash/root_window_controller.h"
18 #include "ash/root_window_settings.h" 18 #include "ash/root_window_settings.h"
19 #include "ash/screen_ash.h" 19 #include "ash/screen_ash.h"
20 #include "ash/shell.h" 20 #include "ash/shell.h"
21 #include "ash/wm/coordinate_conversion.h" 21 #include "ash/wm/coordinate_conversion.h"
22 #include "ash/wm/property_util.h"
23 #include "base/command_line.h" 22 #include "base/command_line.h"
24 #include "base/strings/stringprintf.h" 23 #include "base/strings/stringprintf.h"
25 #include "third_party/skia/include/utils/SkMatrix44.h" 24 #include "third_party/skia/include/utils/SkMatrix44.h"
26 #include "ui/aura/client/activation_client.h" 25 #include "ui/aura/client/activation_client.h"
27 #include "ui/aura/client/capture_client.h" 26 #include "ui/aura/client/capture_client.h"
28 #include "ui/aura/client/cursor_client.h" 27 #include "ui/aura/client/cursor_client.h"
29 #include "ui/aura/client/focus_client.h" 28 #include "ui/aura/client/focus_client.h"
30 #include "ui/aura/client/screen_position_client.h" 29 #include "ui/aura/client/screen_position_client.h"
31 #include "ui/aura/root_window.h" 30 #include "ui/aura/root_window.h"
32 #include "ui/aura/root_window_transformer.h" 31 #include "ui/aura/root_window_transformer.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 primary_display_for_shutdown = new gfx::Display( 252 primary_display_for_shutdown = new gfx::Display(
254 GetDisplayManager()->GetDisplayForId(primary_display_id)); 253 GetDisplayManager()->GetDisplayForId(primary_display_id));
255 num_displays_for_shutdown = GetDisplayManager()->GetNumDisplays(); 254 num_displays_for_shutdown = GetDisplayManager()->GetNumDisplays();
256 255
257 Shell::GetScreen()->RemoveObserver(this); 256 Shell::GetScreen()->RemoveObserver(this);
258 // Delete all root window controllers, which deletes root window 257 // Delete all root window controllers, which deletes root window
259 // from the last so that the primary root window gets deleted last. 258 // from the last so that the primary root window gets deleted last.
260 for (std::map<int64, aura::RootWindow*>::const_reverse_iterator it = 259 for (std::map<int64, aura::RootWindow*>::const_reverse_iterator it =
261 root_windows_.rbegin(); it != root_windows_.rend(); ++it) { 260 root_windows_.rbegin(); it != root_windows_.rend(); ++it) {
262 internal::RootWindowController* controller = 261 internal::RootWindowController* controller =
263 GetRootWindowController(it->second); 262 internal::GetRootWindowController(it->second);
264 DCHECK(controller); 263 DCHECK(controller);
265 delete controller; 264 delete controller;
266 } 265 }
267 } 266 }
268 267
269 // static 268 // static
270 const gfx::Display& DisplayController::GetPrimaryDisplay() { 269 const gfx::Display& DisplayController::GetPrimaryDisplay() {
271 DCHECK_NE(primary_display_id, gfx::Display::kInvalidDisplayID); 270 DCHECK_NE(primary_display_id, gfx::Display::kInvalidDisplayID);
272 if (primary_display_for_shutdown) 271 if (primary_display_for_shutdown)
273 return *primary_display_for_shutdown; 272 return *primary_display_for_shutdown;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 314
316 aura::RootWindow* DisplayController::GetRootWindowForDisplayId(int64 id) { 315 aura::RootWindow* DisplayController::GetRootWindowForDisplayId(int64 id) {
317 return root_windows_[id]; 316 return root_windows_[id];
318 } 317 }
319 318
320 void DisplayController::CloseChildWindows() { 319 void DisplayController::CloseChildWindows() {
321 for (std::map<int64, aura::RootWindow*>::const_iterator it = 320 for (std::map<int64, aura::RootWindow*>::const_iterator it =
322 root_windows_.begin(); it != root_windows_.end(); ++it) { 321 root_windows_.begin(); it != root_windows_.end(); ++it) {
323 aura::RootWindow* root_window = it->second; 322 aura::RootWindow* root_window = it->second;
324 internal::RootWindowController* controller = 323 internal::RootWindowController* controller =
325 GetRootWindowController(root_window); 324 internal::GetRootWindowController(root_window);
326 if (controller) { 325 if (controller) {
327 controller->CloseChildWindows(); 326 controller->CloseChildWindows();
328 } else { 327 } else {
329 while (!root_window->children().empty()) { 328 while (!root_window->children().empty()) {
330 aura::Window* child = root_window->children()[0]; 329 aura::Window* child = root_window->children()[0];
331 delete child; 330 delete child;
332 } 331 }
333 } 332 }
334 } 333 }
335 } 334 }
336 335
337 std::vector<aura::RootWindow*> DisplayController::GetAllRootWindows() { 336 std::vector<aura::RootWindow*> DisplayController::GetAllRootWindows() {
338 std::vector<aura::RootWindow*> windows; 337 std::vector<aura::RootWindow*> windows;
339 for (std::map<int64, aura::RootWindow*>::const_iterator it = 338 for (std::map<int64, aura::RootWindow*>::const_iterator it =
340 root_windows_.begin(); it != root_windows_.end(); ++it) { 339 root_windows_.begin(); it != root_windows_.end(); ++it) {
341 DCHECK(it->second); 340 DCHECK(it->second);
342 if (GetRootWindowController(it->second)) 341 if (internal::GetRootWindowController(it->second))
343 windows.push_back(it->second); 342 windows.push_back(it->second);
344 } 343 }
345 return windows; 344 return windows;
346 } 345 }
347 346
348 gfx::Insets DisplayController::GetOverscanInsets(int64 display_id) const { 347 gfx::Insets DisplayController::GetOverscanInsets(int64 display_id) const {
349 return GetDisplayManager()->GetOverscanInsets(display_id); 348 return GetDisplayManager()->GetOverscanInsets(display_id);
350 } 349 }
351 350
352 void DisplayController::SetOverscanInsets(int64 display_id, 351 void DisplayController::SetOverscanInsets(int64 display_id,
353 const gfx::Insets& insets_in_dip) { 352 const gfx::Insets& insets_in_dip) {
354 GetDisplayManager()->SetOverscanInsets(display_id, insets_in_dip); 353 GetDisplayManager()->SetOverscanInsets(display_id, insets_in_dip);
355 } 354 }
356 355
357 std::vector<internal::RootWindowController*> 356 std::vector<internal::RootWindowController*>
358 DisplayController::GetAllRootWindowControllers() { 357 DisplayController::GetAllRootWindowControllers() {
359 std::vector<internal::RootWindowController*> controllers; 358 std::vector<internal::RootWindowController*> controllers;
360 for (std::map<int64, aura::RootWindow*>::const_iterator it = 359 for (std::map<int64, aura::RootWindow*>::const_iterator it =
361 root_windows_.begin(); it != root_windows_.end(); ++it) { 360 root_windows_.begin(); it != root_windows_.end(); ++it) {
362 internal::RootWindowController* controller = 361 internal::RootWindowController* controller =
363 GetRootWindowController(it->second); 362 internal::GetRootWindowController(it->second);
364 if (controller) 363 if (controller)
365 controllers.push_back(controller); 364 controllers.push_back(controller);
366 } 365 }
367 return controllers; 366 return controllers;
368 } 367 }
369 368
370 void DisplayController::SetLayoutForCurrentDisplays( 369 void DisplayController::SetLayoutForCurrentDisplays(
371 const DisplayLayout& layout_relative_to_primary) { 370 const DisplayLayout& layout_relative_to_primary) {
372 DCHECK_EQ(2U, GetDisplayManager()->GetNumDisplays()); 371 DCHECK_EQ(2U, GetDisplayManager()->GetNumDisplays());
373 if (GetDisplayManager()->GetNumDisplays() < 2) 372 if (GetDisplayManager()->GetNumDisplays() < 2)
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 676
678 // Setup primary root. 677 // Setup primary root.
679 root_windows_[primary_display_id] = primary_root; 678 root_windows_[primary_display_id] = primary_root;
680 internal::GetRootWindowSettings(primary_root)->display_id = 679 internal::GetRootWindowSettings(primary_root)->display_id =
681 primary_display_id; 680 primary_display_id;
682 681
683 OnDisplayBoundsChanged( 682 OnDisplayBoundsChanged(
684 GetDisplayManager()->GetDisplayForId(primary_display_id)); 683 GetDisplayManager()->GetDisplayForId(primary_display_id));
685 } 684 }
686 internal::RootWindowController* controller = 685 internal::RootWindowController* controller =
687 GetRootWindowController(root_to_delete); 686 internal::GetRootWindowController(root_to_delete);
688 DCHECK(controller); 687 DCHECK(controller);
689 controller->MoveWindowsTo(GetPrimaryRootWindow()); 688 controller->MoveWindowsTo(GetPrimaryRootWindow());
690 // Delete most of root window related objects, but don't delete 689 // Delete most of root window related objects, but don't delete
691 // root window itself yet because the stack may be using it. 690 // root window itself yet because the stack may be using it.
692 controller->Shutdown(); 691 controller->Shutdown();
693 base::MessageLoop::current()->DeleteSoon(FROM_HERE, controller); 692 base::MessageLoop::current()->DeleteSoon(FROM_HERE, controller);
694 } 693 }
695 694
696 void DisplayController::OnRootWindowHostResized(const aura::RootWindow* root) { 695 void DisplayController::OnRootWindowHostResized(const aura::RootWindow* root) {
697 internal::DisplayManager* display_manager = GetDisplayManager(); 696 internal::DisplayManager* display_manager = GetDisplayManager();
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 for (size_t i = 0; i < root_windows.size(); ++i) { 820 for (size_t i = 0; i < root_windows.size(); ++i) {
822 std::string name = 821 std::string name =
823 root_windows[i] == primary ? "aura_root_0" : "aura_root_x"; 822 root_windows[i] == primary ? "aura_root_0" : "aura_root_x";
824 gfx::AcceleratedWidget xwindow = root_windows[i]->GetAcceleratedWidget(); 823 gfx::AcceleratedWidget xwindow = root_windows[i]->GetAcceleratedWidget();
825 XStoreName(ui::GetXDisplay(), xwindow, name.c_str()); 824 XStoreName(ui::GetXDisplay(), xwindow, name.c_str());
826 } 825 }
827 #endif 826 #endif
828 } 827 }
829 828
830 } // namespace ash 829 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698