| OLD | NEW |
| 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/root_window_controller.h" | 5 #include "ash/root_window_controller.h" |
| 6 | 6 |
| 7 #include <queue> | 7 #include <queue> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/aura/aura_layout_manager_adapter.h" | 10 #include "ash/aura/aura_layout_manager_adapter.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 // wm/window_animation.cc's brightness/grayscale fade animation that the login | 101 // wm/window_animation.cc's brightness/grayscale fade animation that the login |
| 102 // background image animation isn't hidden by the splash screen animation. | 102 // background image animation isn't hidden by the splash screen animation. |
| 103 const int kBootSplashScreenHideDurationMs = 500; | 103 const int kBootSplashScreenHideDurationMs = 500; |
| 104 #endif | 104 #endif |
| 105 | 105 |
| 106 float ToRelativeValue(int value, int src, int dst) { | 106 float ToRelativeValue(int value, int src, int dst) { |
| 107 return static_cast<float>(value) / static_cast<float>(src) * dst; | 107 return static_cast<float>(value) / static_cast<float>(src) * dst; |
| 108 } | 108 } |
| 109 | 109 |
| 110 void MoveOriginRelativeToSize(const gfx::Size& src_size, | 110 void MoveOriginRelativeToSize(const gfx::Size& src_size, |
| 111 const gfx::Size& dst_size, | 111 const gfx::Size& dst_size, |
| 112 gfx::Rect* bounds_in_out) { | 112 gfx::Rect* bounds_in_out) { |
| 113 gfx::Point origin = bounds_in_out->origin(); | 113 gfx::Point origin = bounds_in_out->origin(); |
| 114 bounds_in_out->set_origin(gfx::Point( | 114 bounds_in_out->set_origin(gfx::Point( |
| 115 ToRelativeValue(origin.x(), src_size.width(), dst_size.width()), | 115 ToRelativeValue(origin.x(), src_size.width(), dst_size.width()), |
| 116 ToRelativeValue(origin.y(), src_size.height(), dst_size.height()))); | 116 ToRelativeValue(origin.y(), src_size.height(), dst_size.height()))); |
| 117 } | 117 } |
| 118 | 118 |
| 119 // Reparents |window| to |new_parent|. | 119 // Reparents |window| to |new_parent|. |
| 120 void ReparentWindow(aura::Window* window, aura::Window* new_parent) { | 120 void ReparentWindow(aura::Window* window, aura::Window* new_parent) { |
| 121 const gfx::Size src_size = window->parent()->bounds().size(); | 121 const gfx::Size src_size = window->parent()->bounds().size(); |
| 122 const gfx::Size dst_size = new_parent->bounds().size(); | 122 const gfx::Size dst_size = new_parent->bounds().size(); |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 animating_wallpaper_controller_->StopAnimating(); | 384 animating_wallpaper_controller_->StopAnimating(); |
| 385 wallpaper_controller_.reset(); | 385 wallpaper_controller_.reset(); |
| 386 animating_wallpaper_controller_.reset(); | 386 animating_wallpaper_controller_.reset(); |
| 387 aura::Window* root_window = GetRootWindow(); | 387 aura::Window* root_window = GetRootWindow(); |
| 388 Shell* shell = Shell::GetInstance(); | 388 Shell* shell = Shell::GetInstance(); |
| 389 // Change the target root window before closing child windows. If any child | 389 // Change the target root window before closing child windows. If any child |
| 390 // being removed triggers a relayout of the shelf it will try to build a | 390 // being removed triggers a relayout of the shelf it will try to build a |
| 391 // window list adding windows from the target root window's containers which | 391 // window list adding windows from the target root window's containers which |
| 392 // may have already gone away. | 392 // may have already gone away. |
| 393 if (Shell::GetTargetRootWindow() == root_window) { | 393 if (Shell::GetTargetRootWindow() == root_window) { |
| 394 shell->set_target_root_window( | 394 shell->set_target_root_window(Shell::GetPrimaryRootWindow() == root_window |
| 395 Shell::GetPrimaryRootWindow() == root_window | 395 ? NULL |
| 396 ? NULL | 396 : Shell::GetPrimaryRootWindow()); |
| 397 : Shell::GetPrimaryRootWindow()); | |
| 398 } | 397 } |
| 399 | 398 |
| 400 CloseChildWindows(); | 399 CloseChildWindows(); |
| 401 GetRootWindowSettings(root_window)->controller = NULL; | 400 GetRootWindowSettings(root_window)->controller = NULL; |
| 402 workspace_controller_.reset(); | 401 workspace_controller_.reset(); |
| 403 // Forget with the display ID so that display lookup | 402 // Forget with the display ID so that display lookup |
| 404 // ends up with invalid display. | 403 // ends up with invalid display. |
| 405 GetRootWindowSettings(root_window)->display_id = | 404 GetRootWindowSettings(root_window)->display_id = |
| 406 display::Display::kInvalidDisplayID; | 405 display::Display::kInvalidDisplayID; |
| 407 ash_host_->PrepareForShutdown(); | 406 ash_host_->PrepareForShutdown(); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 if (window) { | 459 if (window) { |
| 461 aura::Window* window_container = WmWindowAura::GetAuraWindow( | 460 aura::Window* window_container = WmWindowAura::GetAuraWindow( |
| 462 wm::GetContainerForWindow(WmWindowAura::Get(window))); | 461 wm::GetContainerForWindow(WmWindowAura::Get(window))); |
| 463 if (window_container && | 462 if (window_container && |
| 464 window_container->id() >= kShellWindowId_LockScreenContainer) { | 463 window_container->id() >= kShellWindowId_LockScreenContainer) { |
| 465 modal_container = GetContainer(kShellWindowId_LockSystemModalContainer); | 464 modal_container = GetContainer(kShellWindowId_LockSystemModalContainer); |
| 466 } else { | 465 } else { |
| 467 modal_container = GetContainer(kShellWindowId_SystemModalContainer); | 466 modal_container = GetContainer(kShellWindowId_SystemModalContainer); |
| 468 } | 467 } |
| 469 } else { | 468 } else { |
| 470 int modal_window_id = Shell::GetInstance()->session_state_delegate() | 469 int modal_window_id = |
| 471 ->IsUserSessionBlocked() ? kShellWindowId_LockSystemModalContainer : | 470 Shell::GetInstance()->session_state_delegate()->IsUserSessionBlocked() |
| 472 kShellWindowId_SystemModalContainer; | 471 ? kShellWindowId_LockSystemModalContainer |
| 472 : kShellWindowId_SystemModalContainer; |
| 473 modal_container = GetContainer(modal_window_id); | 473 modal_container = GetContainer(modal_window_id); |
| 474 } | 474 } |
| 475 return modal_container ? static_cast<SystemModalContainerLayoutManager*>( | 475 return modal_container ? static_cast<SystemModalContainerLayoutManager*>( |
| 476 modal_container->layout_manager()) : NULL; | 476 modal_container->layout_manager()) |
| 477 : NULL; |
| 477 } | 478 } |
| 478 | 479 |
| 479 aura::Window* RootWindowController::GetContainer(int container_id) { | 480 aura::Window* RootWindowController::GetContainer(int container_id) { |
| 480 return GetRootWindow()->GetChildById(container_id); | 481 return GetRootWindow()->GetChildById(container_id); |
| 481 } | 482 } |
| 482 | 483 |
| 483 const aura::Window* RootWindowController::GetContainer(int container_id) const { | 484 const aura::Window* RootWindowController::GetContainer(int container_id) const { |
| 484 return ash_host_->AsWindowTreeHost()->window()->GetChildById(container_id); | 485 return ash_host_->AsWindowTreeHost()->window()->GetChildById(container_id); |
| 485 } | 486 } |
| 486 | 487 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 #endif | 538 #endif |
| 538 } | 539 } |
| 539 | 540 |
| 540 void RootWindowController::OnWallpaperAnimationFinished(views::Widget* widget) { | 541 void RootWindowController::OnWallpaperAnimationFinished(views::Widget* widget) { |
| 541 // Make sure the wallpaper is visible. | 542 // Make sure the wallpaper is visible. |
| 542 system_background_->SetColor(SK_ColorBLACK); | 543 system_background_->SetColor(SK_ColorBLACK); |
| 543 #if defined(OS_CHROMEOS) | 544 #if defined(OS_CHROMEOS) |
| 544 boot_splash_screen_.reset(); | 545 boot_splash_screen_.reset(); |
| 545 #endif | 546 #endif |
| 546 | 547 |
| 547 Shell::GetInstance()->user_wallpaper_delegate()-> | 548 Shell::GetInstance() |
| 548 OnWallpaperAnimationFinished(); | 549 ->user_wallpaper_delegate() |
| 550 ->OnWallpaperAnimationFinished(); |
| 549 // Only removes old component when wallpaper animation finished. If we | 551 // Only removes old component when wallpaper animation finished. If we |
| 550 // remove the old one before the new wallpaper is done fading in there will | 552 // remove the old one before the new wallpaper is done fading in there will |
| 551 // be a white flash during the animation. | 553 // be a white flash during the animation. |
| 552 if (animating_wallpaper_controller()) { | 554 if (animating_wallpaper_controller()) { |
| 553 DesktopBackgroundWidgetController* controller = | 555 DesktopBackgroundWidgetController* controller = |
| 554 animating_wallpaper_controller()->GetController(true); | 556 animating_wallpaper_controller()->GetController(true); |
| 555 // |desktop_widget_| should be the same animating widget we try to move | 557 // |desktop_widget_| should be the same animating widget we try to move |
| 556 // to |kDesktopController|. Otherwise, we may close |desktop_widget_| | 558 // to |kDesktopController|. Otherwise, we may close |desktop_widget_| |
| 557 // before move it to |kDesktopController|. | 559 // before move it to |kDesktopController|. |
| 558 DCHECK_EQ(controller->widget(), widget); | 560 DCHECK_EQ(controller->widget(), widget); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 DCHECK(keyboard_controller); | 699 DCHECK(keyboard_controller); |
| 698 keyboard_controller->AddObserver(shelf_widget()->shelf_layout_manager()); | 700 keyboard_controller->AddObserver(shelf_widget()->shelf_layout_manager()); |
| 699 keyboard_controller->AddObserver(panel_layout_manager_); | 701 keyboard_controller->AddObserver(panel_layout_manager_); |
| 700 keyboard_controller->AddObserver(docked_layout_manager_); | 702 keyboard_controller->AddObserver(docked_layout_manager_); |
| 701 keyboard_controller->AddObserver(workspace_controller_->layout_manager()); | 703 keyboard_controller->AddObserver(workspace_controller_->layout_manager()); |
| 702 keyboard_controller->AddObserver( | 704 keyboard_controller->AddObserver( |
| 703 always_on_top_controller_->GetLayoutManager()); | 705 always_on_top_controller_->GetLayoutManager()); |
| 704 Shell::GetInstance()->delegate()->VirtualKeyboardActivated(true); | 706 Shell::GetInstance()->delegate()->VirtualKeyboardActivated(true); |
| 705 aura::Window* parent = GetContainer(kShellWindowId_ImeWindowParentContainer); | 707 aura::Window* parent = GetContainer(kShellWindowId_ImeWindowParentContainer); |
| 706 DCHECK(parent); | 708 DCHECK(parent); |
| 707 aura::Window* keyboard_container = | 709 aura::Window* keyboard_container = keyboard_controller->GetContainerWindow(); |
| 708 keyboard_controller->GetContainerWindow(); | |
| 709 keyboard_container->set_id(kShellWindowId_VirtualKeyboardContainer); | 710 keyboard_container->set_id(kShellWindowId_VirtualKeyboardContainer); |
| 710 parent->AddChild(keyboard_container); | 711 parent->AddChild(keyboard_container); |
| 711 } | 712 } |
| 712 | 713 |
| 713 void RootWindowController::DeactivateKeyboard( | 714 void RootWindowController::DeactivateKeyboard( |
| 714 keyboard::KeyboardController* keyboard_controller) { | 715 keyboard::KeyboardController* keyboard_controller) { |
| 715 if (!keyboard_controller || | 716 if (!keyboard_controller || |
| 716 !keyboard_controller->keyboard_container_initialized()) { | 717 !keyboard_controller->keyboard_container_initialized()) { |
| 717 return; | 718 return; |
| 718 } | 719 } |
| 719 aura::Window* keyboard_container = | 720 aura::Window* keyboard_container = keyboard_controller->GetContainerWindow(); |
| 720 keyboard_controller->GetContainerWindow(); | |
| 721 if (keyboard_container->GetRootWindow() == GetRootWindow()) { | 721 if (keyboard_container->GetRootWindow() == GetRootWindow()) { |
| 722 aura::Window* parent = | 722 aura::Window* parent = |
| 723 GetContainer(kShellWindowId_ImeWindowParentContainer); | 723 GetContainer(kShellWindowId_ImeWindowParentContainer); |
| 724 DCHECK(parent); | 724 DCHECK(parent); |
| 725 parent->RemoveChild(keyboard_container); | 725 parent->RemoveChild(keyboard_container); |
| 726 // Virtual keyboard may be deactivated while still showing, notify all | 726 // Virtual keyboard may be deactivated while still showing, notify all |
| 727 // observers that keyboard bounds changed to 0 before remove them. | 727 // observers that keyboard bounds changed to 0 before remove them. |
| 728 keyboard_controller->NotifyKeyboardBoundsChanging(gfx::Rect()); | 728 keyboard_controller->NotifyKeyboardBoundsChanging(gfx::Rect()); |
| 729 keyboard_controller->RemoveObserver(shelf_widget()->shelf_layout_manager()); | 729 keyboard_controller->RemoveObserver(shelf_widget()->shelf_layout_manager()); |
| 730 keyboard_controller->RemoveObserver(panel_layout_manager_); | 730 keyboard_controller->RemoveObserver(panel_layout_manager_); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 776 Shell* shell = Shell::GetInstance(); | 776 Shell* shell = Shell::GetInstance(); |
| 777 shell->InitRootWindow(root_window); | 777 shell->InitRootWindow(root_window); |
| 778 | 778 |
| 779 root_window_controller_common_->CreateContainers(); | 779 root_window_controller_common_->CreateContainers(); |
| 780 | 780 |
| 781 CreateSystemBackground(first_run_after_boot); | 781 CreateSystemBackground(first_run_after_boot); |
| 782 | 782 |
| 783 InitLayoutManagers(); | 783 InitLayoutManagers(); |
| 784 InitTouchHuds(); | 784 InitTouchHuds(); |
| 785 | 785 |
| 786 if (Shell::GetPrimaryRootWindowController()-> | 786 if (Shell::GetPrimaryRootWindowController() |
| 787 GetSystemModalLayoutManager(NULL)->has_modal_background()) { | 787 ->GetSystemModalLayoutManager(NULL) |
| 788 ->has_modal_background()) { |
| 788 GetSystemModalLayoutManager(NULL)->CreateModalBackground(); | 789 GetSystemModalLayoutManager(NULL)->CreateModalBackground(); |
| 789 } | 790 } |
| 790 | 791 |
| 791 WmShell::Get()->AddShellObserver(this); | 792 WmShell::Get()->AddShellObserver(this); |
| 792 | 793 |
| 793 root_window_controller_common_->root_window_layout()->OnWindowResized(); | 794 root_window_controller_common_->root_window_layout()->OnWindowResized(); |
| 794 if (root_window_type == PRIMARY) { | 795 if (root_window_type == PRIMARY) { |
| 795 shell->InitKeyboard(); | 796 shell->InitKeyboard(); |
| 796 } else { | 797 } else { |
| 797 ash_host_->AsWindowTreeHost()->Show(); | 798 ash_host_->AsWindowTreeHost()->Show(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 WmWindow* shelf_container = | 853 WmWindow* shelf_container = |
| 853 WmWindowAura::Get(GetContainer(kShellWindowId_ShelfContainer)); | 854 WmWindowAura::Get(GetContainer(kShellWindowId_ShelfContainer)); |
| 854 WmWindow* status_container = | 855 WmWindow* status_container = |
| 855 WmWindowAura::Get(GetContainer(kShellWindowId_StatusContainer)); | 856 WmWindowAura::Get(GetContainer(kShellWindowId_StatusContainer)); |
| 856 shelf_widget_.reset(new ShelfWidget(shelf_container, status_container, | 857 shelf_widget_.reset(new ShelfWidget(shelf_container, status_container, |
| 857 wm_shelf_aura_.get(), | 858 wm_shelf_aura_.get(), |
| 858 workspace_controller())); | 859 workspace_controller())); |
| 859 workspace_layout_manager_delegate->set_shelf( | 860 workspace_layout_manager_delegate->set_shelf( |
| 860 shelf_widget_->shelf_layout_manager()); | 861 shelf_widget_->shelf_layout_manager()); |
| 861 | 862 |
| 862 if (!Shell::GetInstance()->session_state_delegate()-> | 863 if (!Shell::GetInstance() |
| 863 IsActiveUserSessionStarted()) { | 864 ->session_state_delegate() |
| 865 ->IsActiveUserSessionStarted()) { |
| 864 // This window exists only to be a event target on login screen. | 866 // This window exists only to be a event target on login screen. |
| 865 // It does not have to handle events, nor be visible. | 867 // It does not have to handle events, nor be visible. |
| 866 mouse_event_target_.reset(new aura::Window(new EmptyWindowDelegate)); | 868 mouse_event_target_.reset(new aura::Window(new EmptyWindowDelegate)); |
| 867 mouse_event_target_->Init(ui::LAYER_NOT_DRAWN); | 869 mouse_event_target_->Init(ui::LAYER_NOT_DRAWN); |
| 868 | 870 |
| 869 aura::Window* lock_background_container = | 871 aura::Window* lock_background_container = |
| 870 GetContainer(kShellWindowId_LockScreenBackgroundContainer); | 872 GetContainer(kShellWindowId_LockScreenBackgroundContainer); |
| 871 lock_background_container->AddChild(mouse_event_target_.get()); | 873 lock_background_container->AddChild(mouse_event_target_.get()); |
| 872 mouse_event_target_->Show(); | 874 mouse_event_target_->Show(); |
| 873 } | 875 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 885 // Create Panel layout manager | 887 // Create Panel layout manager |
| 886 aura::Window* panel_container = GetContainer(kShellWindowId_PanelContainer); | 888 aura::Window* panel_container = GetContainer(kShellWindowId_PanelContainer); |
| 887 WmWindow* wm_panel_container = WmWindowAura::Get(panel_container); | 889 WmWindow* wm_panel_container = WmWindowAura::Get(panel_container); |
| 888 panel_layout_manager_ = new PanelLayoutManager(wm_panel_container); | 890 panel_layout_manager_ = new PanelLayoutManager(wm_panel_container); |
| 889 wm_panel_container->SetLayoutManager(base::WrapUnique(panel_layout_manager_)); | 891 wm_panel_container->SetLayoutManager(base::WrapUnique(panel_layout_manager_)); |
| 890 panel_container_handler_.reset(new PanelWindowEventHandler); | 892 panel_container_handler_.reset(new PanelWindowEventHandler); |
| 891 panel_container->AddPreTargetHandler(panel_container_handler_.get()); | 893 panel_container->AddPreTargetHandler(panel_container_handler_.get()); |
| 892 | 894 |
| 893 // Install an AttachedPanelWindowTargeter on the panel container to make it | 895 // Install an AttachedPanelWindowTargeter on the panel container to make it |
| 894 // easier to correctly target shelf buttons with touch. | 896 // easier to correctly target shelf buttons with touch. |
| 895 gfx::Insets mouse_extend(-kResizeOutsideBoundsSize, | 897 gfx::Insets mouse_extend(-kResizeOutsideBoundsSize, -kResizeOutsideBoundsSize, |
| 896 -kResizeOutsideBoundsSize, | |
| 897 -kResizeOutsideBoundsSize, | 898 -kResizeOutsideBoundsSize, |
| 898 -kResizeOutsideBoundsSize); | 899 -kResizeOutsideBoundsSize); |
| 899 gfx::Insets touch_extend = mouse_extend.Scale( | 900 gfx::Insets touch_extend = |
| 900 kResizeOutsideBoundsScaleForTouch); | 901 mouse_extend.Scale(kResizeOutsideBoundsScaleForTouch); |
| 901 panel_container->SetEventTargeter( | 902 panel_container->SetEventTargeter( |
| 902 std::unique_ptr<ui::EventTargeter>(new AttachedPanelWindowTargeter( | 903 std::unique_ptr<ui::EventTargeter>(new AttachedPanelWindowTargeter( |
| 903 panel_container, mouse_extend, touch_extend, panel_layout_manager_))); | 904 panel_container, mouse_extend, touch_extend, panel_layout_manager_))); |
| 904 } | 905 } |
| 905 | 906 |
| 906 void RootWindowController::InitTouchHuds() { | 907 void RootWindowController::InitTouchHuds() { |
| 907 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | 908 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
| 908 if (command_line->HasSwitch(switches::kAshTouchHud)) | 909 if (command_line->HasSwitch(switches::kAshTouchHud)) |
| 909 set_touch_hud_debug(new TouchHudDebug(GetRootWindow())); | 910 set_touch_hud_debug(new TouchHudDebug(GetRootWindow())); |
| 910 if (Shell::GetInstance()->is_touch_hud_projection_enabled()) | 911 if (Shell::GetInstance()->is_touch_hud_projection_enabled()) |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 956 shelf_widget_->shelf_layout_manager()->UpdateVisibilityState(); | 957 shelf_widget_->shelf_layout_manager()->UpdateVisibilityState(); |
| 957 } | 958 } |
| 958 | 959 |
| 959 void RootWindowController::OnTouchHudProjectionToggled(bool enabled) { | 960 void RootWindowController::OnTouchHudProjectionToggled(bool enabled) { |
| 960 if (enabled) | 961 if (enabled) |
| 961 EnableTouchHudProjection(); | 962 EnableTouchHudProjection(); |
| 962 else | 963 else |
| 963 DisableTouchHudProjection(); | 964 DisableTouchHudProjection(); |
| 964 } | 965 } |
| 965 | 966 |
| 966 RootWindowController* GetRootWindowController( | 967 RootWindowController* GetRootWindowController(const aura::Window* root_window) { |
| 967 const aura::Window* root_window) { | |
| 968 if (!root_window) | 968 if (!root_window) |
| 969 return nullptr; | 969 return nullptr; |
| 970 | 970 |
| 971 if (Shell::GetInstance()->in_mus()) { | 971 if (Shell::GetInstance()->in_mus()) { |
| 972 // On mus, like desktop aura, each top-level widget has its own root window, | 972 // On mus, like desktop aura, each top-level widget has its own root window, |
| 973 // so |root_window| is not necessarily the display's root. For now, just | 973 // so |root_window| is not necessarily the display's root. For now, just |
| 974 // the use the primary display root. | 974 // the use the primary display root. |
| 975 // TODO(jamescook): Multi-display support. This depends on how mus windows | 975 // TODO(jamescook): Multi-display support. This depends on how mus windows |
| 976 // will be owned by displays. | 976 // will be owned by displays. |
| 977 aura::Window* primary_root_window = Shell::GetInstance() | 977 aura::Window* primary_root_window = Shell::GetInstance() |
| 978 ->window_tree_host_manager() | 978 ->window_tree_host_manager() |
| 979 ->GetPrimaryRootWindow(); | 979 ->GetPrimaryRootWindow(); |
| 980 return GetRootWindowSettings(primary_root_window)->controller; | 980 return GetRootWindowSettings(primary_root_window)->controller; |
| 981 } | 981 } |
| 982 | 982 |
| 983 return GetRootWindowSettings(root_window)->controller; | 983 return GetRootWindowSettings(root_window)->controller; |
| 984 } | 984 } |
| 985 | 985 |
| 986 } // namespace ash | 986 } // namespace ash |
| OLD | NEW |