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 #ifndef ASH_ROOT_WINDOW_CONTROLLER_H_ | 5 #ifndef ASH_ROOT_WINDOW_CONTROLLER_H_ |
6 #define ASH_ROOT_WINDOW_CONTROLLER_H_ | 6 #define ASH_ROOT_WINDOW_CONTROLLER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "ash/ash_export.h" | 11 #include "ash/ash_export.h" |
12 #include "ash/common/shell_observer.h" | 12 #include "ash/common/shell_observer.h" |
13 #include "ash/common/wm/workspace/workspace_types.h" | |
13 #include "ash/public/cpp/shelf_types.h" | 14 #include "ash/public/cpp/shelf_types.h" |
14 #include "base/macros.h" | 15 #include "base/macros.h" |
15 #include "ui/aura/window.h" | 16 #include "ui/aura/window.h" |
16 #include "ui/aura/window_tree_host.h" | 17 #include "ui/aura/window_tree_host.h" |
18 #include "ui/views/widget/widget.h" | |
17 | 19 |
18 namespace aura { | 20 namespace aura { |
19 class Window; | 21 class Window; |
20 } | 22 } |
21 | 23 |
22 namespace gfx { | 24 namespace gfx { |
23 class Point; | 25 class Point; |
24 } | 26 } |
25 | 27 |
26 namespace keyboard { | 28 namespace keyboard { |
27 class KeyboardController; | 29 class KeyboardController; |
28 } | 30 } |
29 | 31 |
30 namespace ui { | 32 namespace ui { |
31 class EventHandler; | 33 class EventHandler; |
34 class MenuModel; | |
32 class WindowTreeHost; | 35 class WindowTreeHost; |
33 } | 36 } |
34 | 37 |
35 namespace views { | 38 namespace views { |
36 class Widget; | 39 class MenuModelAdapter; |
40 class MenuRunner; | |
37 } | 41 } |
38 | 42 |
39 namespace wm { | 43 namespace wm { |
40 class ScopedCaptureClient; | 44 class ScopedCaptureClient; |
41 } | 45 } |
42 | 46 |
43 namespace ash { | 47 namespace ash { |
48 class AlwaysOnTopController; | |
49 class AnimatingWallpaperWidgetController; | |
44 class AshTouchExplorationManager; | 50 class AshTouchExplorationManager; |
45 class AshWindowTreeHost; | 51 class AshWindowTreeHost; |
46 class BootSplashScreen; | 52 class BootSplashScreen; |
47 class DockedWindowLayoutManager; | 53 class DockedWindowLayoutManager; |
48 enum class LoginStatus; | 54 enum class LoginStatus; |
49 class PanelLayoutManager; | 55 class PanelLayoutManager; |
50 class ShelfLayoutManager; | 56 class ShelfLayoutManager; |
51 class StackingController; | 57 class StackingController; |
52 class StatusAreaWidget; | 58 class StatusAreaWidget; |
59 class SystemModalContainerLayoutManager; | |
53 class SystemTray; | 60 class SystemTray; |
54 class SystemWallpaperController; | 61 class SystemWallpaperController; |
55 class TouchHudDebug; | 62 class TouchHudDebug; |
56 class TouchHudProjection; | 63 class TouchHudProjection; |
57 class WmRootWindowController; | 64 class WallpaperWidgetController; |
58 class WmShelf; | 65 class WmShelf; |
59 class WorkspaceController; | 66 class WorkspaceController; |
60 | 67 |
61 namespace mus { | 68 namespace mus { |
62 class RootWindowController; | 69 class RootWindowController; |
63 } | 70 } |
64 | 71 |
72 namespace wm { | |
73 class RootWindowLayoutManager; | |
74 } | |
75 | |
65 // This class maintains the per root window state for ash. This class | 76 // This class maintains the per root window state for ash. This class |
66 // owns the root window and other dependent objects that should be | 77 // owns the root window and other dependent objects that should be |
67 // deleted upon the deletion of the root window. This object is | 78 // deleted upon the deletion of the root window. This object is |
68 // indirectly owned and deleted by |WindowTreeHostManager|. | 79 // indirectly owned and deleted by |WindowTreeHostManager|. |
69 // The RootWindowController for particular root window is stored in | 80 // The RootWindowController for particular root window is stored in |
70 // its property (RootWindowSettings) and can be obtained using | 81 // its property (RootWindowSettings) and can be obtained using |
71 // |GetRootWindowController(aura::WindowEventDispatcher*)| function. | 82 // |GetRootWindowController(aura::WindowEventDispatcher*)| function. |
72 class ASH_EXPORT RootWindowController : public ShellObserver { | 83 class ASH_EXPORT RootWindowController : public ShellObserver { |
73 public: | 84 public: |
74 // Enumerates the type of display. If there is only a single display then | 85 // Enumerates the type of display. If there is only a single display then |
75 // it is primary. In a multi-display environment one monitor is deemed the | 86 // it is primary. In a multi-display environment one monitor is deemed the |
76 // PRIMARY and all others SECONDARY. | 87 // PRIMARY and all others SECONDARY. |
77 enum class RootWindowType { PRIMARY, SECONDARY }; | 88 enum class RootWindowType { PRIMARY, SECONDARY }; |
78 | 89 |
79 ~RootWindowController() override; | 90 ~RootWindowController() override; |
80 | 91 |
81 // Creates and Initialize the RootWindowController for primary display. | 92 // Creates and Initialize the RootWindowController for primary display. |
82 static void CreateForPrimaryDisplay(AshWindowTreeHost* host); | 93 static void CreateForPrimaryDisplay(AshWindowTreeHost* host); |
83 | 94 |
84 // Creates and Initialize the RootWindowController for secondary displays. | 95 // Creates and Initialize the RootWindowController for secondary displays. |
85 static void CreateForSecondaryDisplay(AshWindowTreeHost* host); | 96 static void CreateForSecondaryDisplay(AshWindowTreeHost* host); |
86 | 97 |
87 // Returns a RootWindowController of the window's root window. | 98 // Returns a RootWindowController of the window's root window. |
88 static RootWindowController* ForWindow(const aura::Window* window); | 99 static RootWindowController* ForWindow(const aura::Window* window); |
89 | 100 |
90 // Returns the RootWindowController of the target root window. | 101 // Returns the RootWindowController of the target root window. |
91 static RootWindowController* ForTargetRootWindow(); | 102 static RootWindowController* ForTargetRootWindow(); |
92 | 103 |
104 // Configures |init_params| prior to initializing |widget|. | |
105 // |shell_container_id| is the id of the container to parent |widget| to. | |
106 // TODO(sky): remove this, http://crbug.com/671246. | |
James Cook
2017/01/11 17:00:54
heh, you have a bug for it already. hooray!
sky
2017/01/11 18:57:42
Well, this is actually the meta bug for unraveling
| |
107 void ConfigureWidgetInitParamsForContainer( | |
108 views::Widget* widget, | |
109 int shell_container_id, | |
110 views::Widget::InitParams* init_params); | |
111 | |
93 // TODO(sky): move these to a separate class or use AshWindowTreeHost in | 112 // TODO(sky): move these to a separate class or use AshWindowTreeHost in |
94 // mash. http://crbug.com/671246. | 113 // mash. http://crbug.com/671246. |
95 AshWindowTreeHost* ash_host() { return ash_host_.get(); } | 114 AshWindowTreeHost* ash_host() { return ash_host_.get(); } |
96 const AshWindowTreeHost* ash_host() const { return ash_host_.get(); } | 115 const AshWindowTreeHost* ash_host() const { return ash_host_.get(); } |
97 | 116 |
98 aura::WindowTreeHost* GetHost(); | 117 aura::WindowTreeHost* GetHost(); |
99 const aura::WindowTreeHost* GetHost() const; | 118 const aura::WindowTreeHost* GetHost() const; |
100 aura::Window* GetRootWindow(); | 119 aura::Window* GetRootWindow(); |
101 const aura::Window* GetRootWindow() const; | 120 const aura::Window* GetRootWindow() const; |
102 | 121 |
103 WorkspaceController* workspace_controller(); | 122 // TODO(sky): remove these. http://crbug.com/671246. |
123 WmWindow* GetWindow() { | |
124 return const_cast<WmWindow*>( | |
125 const_cast<const RootWindowController*>(this)->GetWindow()); | |
126 } | |
127 const WmWindow* GetWindow() const; | |
128 | |
129 WorkspaceController* workspace_controller() { | |
James Cook
2017/01/11 17:00:54
optional nit: I'm not sure it's part of the style
sky
2017/01/11 18:57:42
I tried to keep related things grouped together. S
| |
130 return workspace_controller_.get(); | |
131 } | |
132 | |
133 wm::WorkspaceWindowState GetWorkspaceWindowState(); | |
104 | 134 |
105 WmShelf* wm_shelf() const { return wm_shelf_.get(); } | 135 WmShelf* wm_shelf() const { return wm_shelf_.get(); } |
106 | 136 |
107 WmRootWindowController* wm_root_window_controller() { | 137 bool HasShelf(); |
108 return wm_root_window_controller_.get(); | 138 |
109 } | 139 WmShelf* GetShelf(); |
140 | |
141 // Creates the shelf for this root window and notifies observers. | |
142 void CreateShelf(); | |
143 | |
144 // Show shelf view if it was created hidden (before session has started). | |
145 // TODO(jamescook): Eliminate this and handle show via Shelf. | |
146 void ShowShelf(); | |
110 | 147 |
111 // Get touch HUDs associated with this root window controller. | 148 // Get touch HUDs associated with this root window controller. |
112 TouchHudDebug* touch_hud_debug() const { return touch_hud_debug_; } | 149 TouchHudDebug* touch_hud_debug() const { return touch_hud_debug_; } |
113 TouchHudProjection* touch_hud_projection() const { | 150 TouchHudProjection* touch_hud_projection() const { |
114 return touch_hud_projection_; | 151 return touch_hud_projection_; |
115 } | 152 } |
116 | 153 |
117 // Set touch HUDs for this root window controller. The root window controller | 154 // Set touch HUDs for this root window controller. The root window controller |
118 // will not own the HUDs; their lifetimes are managed by themselves. Whenever | 155 // will not own the HUDs; their lifetimes are managed by themselves. Whenever |
119 // the widget showing a HUD is being destroyed (e.g. because of detaching a | 156 // the widget showing a HUD is being destroyed (e.g. because of detaching a |
120 // display), the HUD deletes itself. | 157 // display), the HUD deletes itself. |
121 void set_touch_hud_debug(TouchHudDebug* hud) { touch_hud_debug_ = hud; } | 158 void set_touch_hud_debug(TouchHudDebug* hud) { touch_hud_debug_ = hud; } |
122 void set_touch_hud_projection(TouchHudProjection* hud) { | 159 void set_touch_hud_projection(TouchHudProjection* hud) { |
123 touch_hud_projection_ = hud; | 160 touch_hud_projection_ = hud; |
124 } | 161 } |
125 | 162 |
163 DockedWindowLayoutManager* docked_window_layout_manager() { | |
164 return docked_window_layout_manager_; | |
165 } | |
166 | |
167 PanelLayoutManager* panel_layout_manager() { return panel_layout_manager_; } | |
168 | |
169 wm::RootWindowLayoutManager* root_window_layout_manager() { | |
170 return root_window_layout_manager_; | |
171 } | |
172 | |
126 // Access the shelf layout manager associated with this root | 173 // Access the shelf layout manager associated with this root |
127 // window controller, NULL if no such shelf exists. | 174 // window controller, NULL if no such shelf exists. |
128 ShelfLayoutManager* GetShelfLayoutManager(); | 175 ShelfLayoutManager* GetShelfLayoutManager(); |
129 | 176 |
177 // Returns the layout manager for the appropriate modal-container. If the | |
178 // window is inside the lockscreen modal container, then the layout manager | |
179 // for that is returned. Otherwise the layout manager for the default modal | |
180 // container is returned. | |
181 // If no window is specified (i.e. |window| is null), then the lockscreen | |
182 // modal container is used if the screen is currently locked. Otherwise, the | |
183 // default modal container is used. | |
184 SystemModalContainerLayoutManager* GetSystemModalLayoutManager( | |
185 WmWindow* window); | |
186 | |
187 AlwaysOnTopController* always_on_top_controller() { | |
188 return always_on_top_controller_.get(); | |
189 } | |
190 | |
130 // May return null, for example for a secondary monitor at the login screen. | 191 // May return null, for example for a secondary monitor at the login screen. |
131 StatusAreaWidget* GetStatusAreaWidget(); | 192 StatusAreaWidget* GetStatusAreaWidget(); |
132 | 193 |
133 // Returns the system tray on this root window. Note that | 194 // Returns the system tray on this root window. Note that |
134 // calling this on the root window that doesn't have a shelf will | 195 // calling this on the root window that doesn't have a shelf will |
135 // lead to a crash. | 196 // lead to a crash. |
136 SystemTray* GetSystemTray(); | 197 SystemTray* GetSystemTray(); |
137 | 198 |
138 // True if the window can receive events on this root window. | 199 // True if the window can receive events on this root window. |
139 bool CanWindowReceiveEvents(aura::Window* window); | 200 bool CanWindowReceiveEvents(aura::Window* window); |
140 | 201 |
202 // Returns the window events will be targeted at for the specified location | |
203 // (in screen coordinates). | |
204 // | |
205 // NOTE: the returned window may not contain the location as resize handles | |
206 // may extend outside the bounds of the window. | |
207 WmWindow* FindEventTarget(const gfx::Point& location_in_screen); | |
208 | |
209 // Gets the last location seen in a mouse event in this root window's | |
210 // coordinates. This may return a point outside the root window's bounds. | |
211 gfx::Point GetLastMouseLocationInRoot(); | |
212 | |
141 aura::Window* GetContainer(int container_id); | 213 aura::Window* GetContainer(int container_id); |
142 const aura::Window* GetContainer(int container_id) const; | 214 const aura::Window* GetContainer(int container_id) const; |
143 | 215 |
216 // TODO(sky): remove these. http://crbug.com/671246. | |
217 WmWindow* GetWmContainer(int container_id) { | |
218 return const_cast<WmWindow*>( | |
219 const_cast<const RootWindowController*>(this)->GetWmContainer( | |
220 container_id)); | |
221 } | |
222 const WmWindow* GetWmContainer(int container_id) const; | |
223 | |
224 WallpaperWidgetController* wallpaper_widget_controller() { | |
225 return wallpaper_widget_controller_.get(); | |
226 } | |
227 void SetWallpaperWidgetController(WallpaperWidgetController* controller); | |
228 | |
229 AnimatingWallpaperWidgetController* animating_wallpaper_widget_controller() { | |
230 return animating_wallpaper_widget_controller_.get(); | |
231 } | |
232 void SetAnimatingWallpaperWidgetController( | |
233 AnimatingWallpaperWidgetController* controller); | |
234 | |
144 // Called when the brightness/grayscale animation from white to the login | 235 // Called when the brightness/grayscale animation from white to the login |
145 // wallpaper image has started. Starts |boot_splash_screen_|'s hiding | 236 // wallpaper image has started. Starts |boot_splash_screen_|'s hiding |
146 // animation (if the screen is non-NULL). | 237 // animation (if the screen is non-NULL). |
147 void OnInitialWallpaperAnimationStarted(); | 238 void OnInitialWallpaperAnimationStarted(); |
148 | 239 |
149 // Called when the wallpaper animation is finished. Updates | 240 // Called when the wallpaper animation is finished. Updates |
150 // |system_wallpaper_| to be black and drops |boot_splash_screen_| and moves | 241 // |system_wallpaper_| to be black and drops |boot_splash_screen_| and moves |
151 // the wallpaper controller into the root window controller. |widget| holds | 242 // the wallpaper controller into the root window controller. |widget| holds |
152 // the wallpaper image, or NULL if the wallpaper is a solid color. | 243 // the wallpaper image, or NULL if the wallpaper is a solid color. |
153 void OnWallpaperAnimationFinished(views::Widget* widget); | 244 void OnWallpaperAnimationFinished(views::Widget* widget); |
(...skipping 26 matching lines...) Expand all Loading... | |
180 // Deactivate virtual keyboard on current root window controller. | 271 // Deactivate virtual keyboard on current root window controller. |
181 void DeactivateKeyboard(keyboard::KeyboardController* keyboard_controller); | 272 void DeactivateKeyboard(keyboard::KeyboardController* keyboard_controller); |
182 | 273 |
183 // Tests if a window is associated with the virtual keyboard. | 274 // Tests if a window is associated with the virtual keyboard. |
184 bool IsVirtualKeyboardWindow(aura::Window* window); | 275 bool IsVirtualKeyboardWindow(aura::Window* window); |
185 | 276 |
186 // If touch exploration is enabled, update the touch exploration | 277 // If touch exploration is enabled, update the touch exploration |
187 // controller so that synthesized touch events are anchored at this point. | 278 // controller so that synthesized touch events are anchored at this point. |
188 void SetTouchAccessibilityAnchorPoint(const gfx::Point& anchor_point); | 279 void SetTouchAccessibilityAnchorPoint(const gfx::Point& anchor_point); |
189 | 280 |
281 // Shows a context menu at the |location_in_screen|. | |
282 void ShowContextMenu(const gfx::Point& location_in_screen, | |
283 ui::MenuSourceType source_type); | |
284 | |
285 // Called when the login status changes after login (such as lock/unlock). | |
286 // TODO(oshima): Investigate if we can merge this and |OnLoginStateChanged|. | |
287 void UpdateAfterLoginStatusChange(LoginStatus status); | |
288 | |
190 private: | 289 private: |
191 // TODO(sky): remove this. Temporary during ash-mus unification. | 290 // TODO(sky): remove this. Temporary during ash-mus unification. |
192 // http://crbug.com/671246. | 291 // http://crbug.com/671246. |
193 friend class mus::RootWindowController; | 292 friend class mus::RootWindowController; |
194 | 293 |
195 // Creates a new RootWindowController with the specified host. Only one of | 294 // Creates a new RootWindowController with the specified host. Only one of |
196 // |ash_host| or |window_tree_host| should be specified. This takes ownership | 295 // |ash_host| or |window_tree_host| should be specified. This takes ownership |
197 // of the supplied arguments. | 296 // of the supplied arguments. |
198 // TODO(sky): mash should create AshWindowTreeHost, http://crbug.com/671246. | 297 // TODO(sky): mash should create AshWindowTreeHost, http://crbug.com/671246. |
199 RootWindowController(AshWindowTreeHost* ash_host, | 298 RootWindowController(AshWindowTreeHost* ash_host, |
200 aura::WindowTreeHost* window_tree_host); | 299 aura::WindowTreeHost* window_tree_host); |
201 | 300 |
202 // Initializes the RootWindowController based on |root_window_type|. | 301 // Initializes the RootWindowController based on |root_window_type|. |
203 void Init(RootWindowType root_window_type); | 302 void Init(RootWindowType root_window_type); |
204 | 303 |
205 void InitLayoutManagers(); | 304 void InitLayoutManagers(); |
206 | 305 |
306 // Creates the containers (WmWindows) used by the shell. | |
307 void CreateContainers(); | |
308 | |
309 // Creates the LayoutManagers for the windows created by CreateContainers(). | |
310 // TODO(sky): merge this with InitLayoutManagers(). | |
311 void CreateLayoutManagers(); | |
312 | |
207 // Initializes |system_wallpaper_| and possibly also |boot_splash_screen_|. | 313 // Initializes |system_wallpaper_| and possibly also |boot_splash_screen_|. |
208 // The initial color is determined by the |root_window_type| and whether or | 314 // The initial color is determined by the |root_window_type| and whether or |
209 // not this is the first boot. | 315 // not this is the first boot. |
210 void CreateSystemWallpaper(RootWindowType root_window_type); | 316 void CreateSystemWallpaper(RootWindowType root_window_type); |
211 | 317 |
212 // Enables projection touch HUD. | 318 // Enables projection touch HUD. |
213 void EnableTouchHudProjection(); | 319 void EnableTouchHudProjection(); |
214 | 320 |
215 // Disables projection touch HUD. | 321 // Disables projection touch HUD. |
216 void DisableTouchHudProjection(); | 322 void DisableTouchHudProjection(); |
217 | 323 |
218 DockedWindowLayoutManager* docked_window_layout_manager(); | 324 // Resets WmShell::GetRootWindowForNewWindows() if appropriate. This is called |
219 PanelLayoutManager* panel_layout_manager(); | 325 // during shutdown to make sure GetRootWindowForNewWindows() isn't referencing |
326 // this. | |
327 void ResetRootForNewWindowsIfNecessary(); | |
328 | |
329 // Callback for MenuModelAdapter. | |
330 void OnMenuClosed(); | |
220 | 331 |
221 // Overridden from ShellObserver. | 332 // Overridden from ShellObserver. |
222 void OnLoginStateChanged(LoginStatus status) override; | 333 void OnLoginStateChanged(LoginStatus status) override; |
223 void OnTouchHudProjectionToggled(bool enabled) override; | 334 void OnTouchHudProjectionToggled(bool enabled) override; |
224 | 335 |
336 // TODO(sky): temporary, fold into CloseChildWindows(). | |
337 void CloseChildWindowsImpl(); | |
338 | |
225 std::unique_ptr<AshWindowTreeHost> ash_host_; | 339 std::unique_ptr<AshWindowTreeHost> ash_host_; |
226 std::unique_ptr<aura::WindowTreeHost> mus_window_tree_host_; | 340 std::unique_ptr<aura::WindowTreeHost> mus_window_tree_host_; |
227 // This comes from |ash_host_| or |mus_window_tree_host_|. | 341 // This comes from |ash_host_| or |mus_window_tree_host_|. |
228 aura::WindowTreeHost* window_tree_host_; | 342 aura::WindowTreeHost* window_tree_host_; |
229 | 343 |
230 std::unique_ptr<WmRootWindowController> wm_root_window_controller_; | 344 // LayoutManagers are owned by the window they are installed on. |
345 DockedWindowLayoutManager* docked_window_layout_manager_ = nullptr; | |
346 PanelLayoutManager* panel_layout_manager_ = nullptr; | |
347 wm::RootWindowLayoutManager* root_window_layout_manager_ = nullptr; | |
348 | |
349 std::unique_ptr<WallpaperWidgetController> wallpaper_widget_controller_; | |
350 std::unique_ptr<AnimatingWallpaperWidgetController> | |
351 animating_wallpaper_widget_controller_; | |
352 std::unique_ptr<WorkspaceController> workspace_controller_; | |
353 | |
354 std::unique_ptr<AlwaysOnTopController> always_on_top_controller_; | |
355 | |
356 // Manages the context menu. | |
357 std::unique_ptr<ui::MenuModel> menu_model_; | |
358 std::unique_ptr<views::MenuModelAdapter> menu_model_adapter_; | |
359 std::unique_ptr<views::MenuRunner> menu_runner_; | |
231 | 360 |
232 std::unique_ptr<StackingController> stacking_controller_; | 361 std::unique_ptr<StackingController> stacking_controller_; |
233 | 362 |
234 // The shelf controller for this root window. Exists for the entire lifetime | 363 // The shelf controller for this root window. Exists for the entire lifetime |
235 // of the RootWindowController so that it is safe for observers to be added | 364 // of the RootWindowController so that it is safe for observers to be added |
236 // to it during construction of the shelf widget and status tray. | 365 // to it during construction of the shelf widget and status tray. |
237 std::unique_ptr<WmShelf> wm_shelf_; | 366 std::unique_ptr<WmShelf> wm_shelf_; |
238 | 367 |
239 std::unique_ptr<SystemWallpaperController> system_wallpaper_; | 368 std::unique_ptr<SystemWallpaperController> system_wallpaper_; |
240 | 369 |
241 std::unique_ptr<BootSplashScreen> boot_splash_screen_; | 370 std::unique_ptr<BootSplashScreen> boot_splash_screen_; |
242 // Responsible for initializing TouchExplorationController when spoken | 371 // Responsible for initializing TouchExplorationController when spoken |
243 // feedback is on. | 372 // feedback is on. |
244 std::unique_ptr<AshTouchExplorationManager> touch_exploration_manager_; | 373 std::unique_ptr<AshTouchExplorationManager> touch_exploration_manager_; |
245 | 374 |
246 // Heads-up displays for touch events. These HUDs are not owned by the root | 375 // Heads-up displays for touch events. These HUDs are not owned by the root |
247 // window controller and manage their own lifetimes. | 376 // window controller and manage their own lifetimes. |
248 TouchHudDebug* touch_hud_debug_; | 377 TouchHudDebug* touch_hud_debug_; |
James Cook
2017/01/11 17:00:53
nit: initialize to null in header, similar to the
sky
2017/01/11 18:57:42
Done.
| |
249 TouchHudProjection* touch_hud_projection_; | 378 TouchHudProjection* touch_hud_projection_; |
250 | 379 |
251 // Handles double clicks on the panel window header. | 380 // Handles double clicks on the panel window header. |
252 std::unique_ptr<ui::EventHandler> panel_container_handler_; | 381 std::unique_ptr<ui::EventHandler> panel_container_handler_; |
253 | 382 |
254 std::unique_ptr<::wm::ScopedCaptureClient> capture_client_; | 383 std::unique_ptr<::wm::ScopedCaptureClient> capture_client_; |
255 | 384 |
256 DISALLOW_COPY_AND_ASSIGN(RootWindowController); | 385 DISALLOW_COPY_AND_ASSIGN(RootWindowController); |
257 }; | 386 }; |
258 | 387 |
259 // On classic ash, returns the RootWindowController for the given |root_window|. | 388 // On classic ash, returns the RootWindowController for the given |root_window|. |
260 // On mus ash, returns the RootWindowController for the primary display. | 389 // On mus ash, returns the RootWindowController for the primary display. |
261 // See RootWindowController class comment above. | 390 // See RootWindowController class comment above. |
262 ASH_EXPORT RootWindowController* GetRootWindowController( | 391 ASH_EXPORT RootWindowController* GetRootWindowController( |
263 const aura::Window* root_window); | 392 const aura::Window* root_window); |
264 | 393 |
265 } // namespace ash | 394 } // namespace ash |
266 | 395 |
267 #endif // ASH_ROOT_WINDOW_CONTROLLER_H_ | 396 #endif // ASH_ROOT_WINDOW_CONTROLLER_H_ |
OLD | NEW |