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/display/display_controller.h" | 5 #include "ash/display/display_controller.h" |
6 | 6 |
7 #include "ash/ash_switches.h" | 7 #include "ash/ash_switches.h" |
8 #include "ash/display/display_info.h" | 8 #include "ash/display/display_info.h" |
9 #include "ash/display/display_layout_store.h" | 9 #include "ash/display/display_layout_store.h" |
10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 focus_changed_count_(0), | 73 focus_changed_count_(0), |
74 activation_changed_count_(0) { | 74 activation_changed_count_(0) { |
75 Shell::GetInstance()->display_controller()->AddObserver(this); | 75 Shell::GetInstance()->display_controller()->AddObserver(this); |
76 Shell::GetScreen()->AddObserver(this); | 76 Shell::GetScreen()->AddObserver(this); |
77 aura::client::GetFocusClient(Shell::GetPrimaryRootWindow())-> | 77 aura::client::GetFocusClient(Shell::GetPrimaryRootWindow())-> |
78 AddObserver(this); | 78 AddObserver(this); |
79 aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())-> | 79 aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())-> |
80 AddObserver(this); | 80 AddObserver(this); |
81 } | 81 } |
82 | 82 |
83 virtual ~TestObserver() { | 83 ~TestObserver() override { |
84 Shell::GetInstance()->display_controller()->RemoveObserver(this); | 84 Shell::GetInstance()->display_controller()->RemoveObserver(this); |
85 Shell::GetScreen()->RemoveObserver(this); | 85 Shell::GetScreen()->RemoveObserver(this); |
86 aura::client::GetFocusClient(Shell::GetPrimaryRootWindow())-> | 86 aura::client::GetFocusClient(Shell::GetPrimaryRootWindow())-> |
87 RemoveObserver(this); | 87 RemoveObserver(this); |
88 aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())-> | 88 aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())-> |
89 RemoveObserver(this); | 89 RemoveObserver(this); |
90 } | 90 } |
91 | 91 |
92 // Overridden from DisplayController::Observer | 92 // Overridden from DisplayController::Observer |
93 virtual void OnDisplayConfigurationChanging() override { | 93 void OnDisplayConfigurationChanging() override { ++changing_count_; } |
94 ++changing_count_; | 94 void OnDisplayConfigurationChanged() override { ++changed_count_; } |
95 } | |
96 virtual void OnDisplayConfigurationChanged() override { | |
97 ++changed_count_; | |
98 } | |
99 | 95 |
100 // Overrideen from gfx::DisplayObserver | 96 // Overrideen from gfx::DisplayObserver |
101 virtual void OnDisplayMetricsChanged(const gfx::Display& display, | 97 void OnDisplayMetricsChanged(const gfx::Display& display, |
102 uint32_t metrics) override { | 98 uint32_t metrics) override { |
103 changed_display_id_ = display.id(); | 99 changed_display_id_ = display.id(); |
104 if (metrics & DISPLAY_METRIC_BOUNDS) | 100 if (metrics & DISPLAY_METRIC_BOUNDS) |
105 ++bounds_changed_count_; | 101 ++bounds_changed_count_; |
106 if (metrics & DISPLAY_METRIC_ROTATION) | 102 if (metrics & DISPLAY_METRIC_ROTATION) |
107 ++rotation_changed_count_; | 103 ++rotation_changed_count_; |
108 if (metrics & DISPLAY_METRIC_WORK_AREA) | 104 if (metrics & DISPLAY_METRIC_WORK_AREA) |
109 ++workarea_changed_count_; | 105 ++workarea_changed_count_; |
110 } | 106 } |
111 virtual void OnDisplayAdded(const gfx::Display& new_display) override { | 107 void OnDisplayAdded(const gfx::Display& new_display) override {} |
112 } | 108 void OnDisplayRemoved(const gfx::Display& old_display) override {} |
113 virtual void OnDisplayRemoved(const gfx::Display& old_display) override { | |
114 } | |
115 | 109 |
116 // Overridden from aura::client::FocusChangeObserver | 110 // Overridden from aura::client::FocusChangeObserver |
117 virtual void OnWindowFocused(aura::Window* gained_focus, | 111 void OnWindowFocused(aura::Window* gained_focus, |
118 aura::Window* lost_focus) override { | 112 aura::Window* lost_focus) override { |
119 focus_changed_count_++; | 113 focus_changed_count_++; |
120 } | 114 } |
121 | 115 |
122 // Overridden from aura::client::ActivationChangeObserver | 116 // Overridden from aura::client::ActivationChangeObserver |
123 virtual void OnWindowActivated(aura::Window* gained_active, | 117 void OnWindowActivated(aura::Window* gained_active, |
124 aura::Window* lost_active) override { | 118 aura::Window* lost_active) override { |
125 activation_changed_count_++; | 119 activation_changed_count_++; |
126 } | 120 } |
127 virtual void OnAttemptToReactivateWindow( | 121 void OnAttemptToReactivateWindow(aura::Window* request_active, |
128 aura::Window* request_active, | 122 aura::Window* actual_active) override {} |
129 aura::Window* actual_active) override { | |
130 } | |
131 | 123 |
132 int CountAndReset() { | 124 int CountAndReset() { |
133 EXPECT_EQ(changing_count_, changed_count_); | 125 EXPECT_EQ(changing_count_, changed_count_); |
134 changed_count_ = 0; | 126 changed_count_ = 0; |
135 return Resetter<int>(&changing_count_).value(); | 127 return Resetter<int>(&changing_count_).value(); |
136 } | 128 } |
137 | 129 |
138 int64 GetBoundsChangedCountAndReset() { | 130 int64 GetBoundsChangedCountAndReset() { |
139 return Resetter<int>(&bounds_changed_count_).value(); | 131 return Resetter<int>(&bounds_changed_count_).value(); |
140 } | 132 } |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 } | 189 } |
198 | 190 |
199 void SetDefaultDisplayLayout(DisplayLayout::Position position) { | 191 void SetDefaultDisplayLayout(DisplayLayout::Position position) { |
200 Shell::GetInstance()->display_manager()->layout_store()-> | 192 Shell::GetInstance()->display_manager()->layout_store()-> |
201 SetDefaultDisplayLayout(DisplayLayout(position, 0)); | 193 SetDefaultDisplayLayout(DisplayLayout(position, 0)); |
202 } | 194 } |
203 | 195 |
204 class DisplayControllerShutdownTest : public test::AshTestBase { | 196 class DisplayControllerShutdownTest : public test::AshTestBase { |
205 public: | 197 public: |
206 DisplayControllerShutdownTest() {} | 198 DisplayControllerShutdownTest() {} |
207 virtual ~DisplayControllerShutdownTest() {} | 199 ~DisplayControllerShutdownTest() override {} |
208 | 200 |
209 virtual void TearDown() override { | 201 void TearDown() override { |
210 test::AshTestBase::TearDown(); | 202 test::AshTestBase::TearDown(); |
211 if (!SupportsMultipleDisplays()) | 203 if (!SupportsMultipleDisplays()) |
212 return; | 204 return; |
213 | 205 |
214 // Make sure that primary display is accessible after shutdown. | 206 // Make sure that primary display is accessible after shutdown. |
215 gfx::Display primary = Shell::GetScreen()->GetPrimaryDisplay(); | 207 gfx::Display primary = Shell::GetScreen()->GetPrimaryDisplay(); |
216 EXPECT_EQ("0,0 444x333", primary.bounds().ToString()); | 208 EXPECT_EQ("0,0 444x333", primary.bounds().ToString()); |
217 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 209 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
218 } | 210 } |
219 | 211 |
220 private: | 212 private: |
221 DISALLOW_COPY_AND_ASSIGN(DisplayControllerShutdownTest); | 213 DISALLOW_COPY_AND_ASSIGN(DisplayControllerShutdownTest); |
222 }; | 214 }; |
223 | 215 |
224 class StartupHelper : public test::TestShellDelegate, | 216 class StartupHelper : public test::TestShellDelegate, |
225 public DisplayController::Observer { | 217 public DisplayController::Observer { |
226 public: | 218 public: |
227 StartupHelper() : displays_initialized_(false) {} | 219 StartupHelper() : displays_initialized_(false) {} |
228 virtual ~StartupHelper() {} | 220 ~StartupHelper() override {} |
229 | 221 |
230 // ash::ShellSelegate: | 222 // ash::ShellSelegate: |
231 virtual void PreInit() override { | 223 void PreInit() override { |
232 Shell::GetInstance()->display_controller()->AddObserver(this); | 224 Shell::GetInstance()->display_controller()->AddObserver(this); |
233 } | 225 } |
234 | 226 |
235 // ash::DisplayController::Observer: | 227 // ash::DisplayController::Observer: |
236 virtual void OnDisplaysInitialized() override { | 228 void OnDisplaysInitialized() override { |
237 DCHECK(!displays_initialized_); | 229 DCHECK(!displays_initialized_); |
238 displays_initialized_ = true; | 230 displays_initialized_ = true; |
239 } | 231 } |
240 | 232 |
241 bool displays_initialized() const { | 233 bool displays_initialized() const { |
242 return displays_initialized_; | 234 return displays_initialized_; |
243 } | 235 } |
244 | 236 |
245 private: | 237 private: |
246 bool displays_initialized_; | 238 bool displays_initialized_; |
247 | 239 |
248 DISALLOW_COPY_AND_ASSIGN(StartupHelper); | 240 DISALLOW_COPY_AND_ASSIGN(StartupHelper); |
249 }; | 241 }; |
250 | 242 |
251 class DisplayControllerStartupTest : public test::AshTestBase { | 243 class DisplayControllerStartupTest : public test::AshTestBase { |
252 public: | 244 public: |
253 DisplayControllerStartupTest() : startup_helper_(new StartupHelper) {} | 245 DisplayControllerStartupTest() : startup_helper_(new StartupHelper) {} |
254 virtual ~DisplayControllerStartupTest() {} | 246 ~DisplayControllerStartupTest() override {} |
255 | 247 |
256 // ash::test::AshTestBase: | 248 // ash::test::AshTestBase: |
257 virtual void SetUp() override { | 249 void SetUp() override { |
258 ash_test_helper()->set_test_shell_delegate(startup_helper_); | 250 ash_test_helper()->set_test_shell_delegate(startup_helper_); |
259 test::AshTestBase::SetUp(); | 251 test::AshTestBase::SetUp(); |
260 } | 252 } |
261 virtual void TearDown() override { | 253 void TearDown() override { |
262 Shell::GetInstance()->display_controller()->RemoveObserver(startup_helper_); | 254 Shell::GetInstance()->display_controller()->RemoveObserver(startup_helper_); |
263 test::AshTestBase::TearDown(); | 255 test::AshTestBase::TearDown(); |
264 } | 256 } |
265 | 257 |
266 const StartupHelper* startup_helper() const { return startup_helper_; } | 258 const StartupHelper* startup_helper() const { return startup_helper_; } |
267 | 259 |
268 private: | 260 private: |
269 StartupHelper* startup_helper_; // Owned by ash::Shell. | 261 StartupHelper* startup_helper_; // Owned by ash::Shell. |
270 | 262 |
271 DISALLOW_COPY_AND_ASSIGN(DisplayControllerStartupTest); | 263 DISALLOW_COPY_AND_ASSIGN(DisplayControllerStartupTest); |
272 }; | 264 }; |
273 | 265 |
274 class TestEventHandler : public ui::EventHandler { | 266 class TestEventHandler : public ui::EventHandler { |
275 public: | 267 public: |
276 TestEventHandler() : target_root_(NULL), | 268 TestEventHandler() : target_root_(NULL), |
277 touch_radius_x_(0.0), | 269 touch_radius_x_(0.0), |
278 touch_radius_y_(0.0), | 270 touch_radius_y_(0.0), |
279 scroll_x_offset_(0.0), | 271 scroll_x_offset_(0.0), |
280 scroll_y_offset_(0.0), | 272 scroll_y_offset_(0.0), |
281 scroll_x_offset_ordinal_(0.0), | 273 scroll_x_offset_ordinal_(0.0), |
282 scroll_y_offset_ordinal_(0.0) {} | 274 scroll_y_offset_ordinal_(0.0) {} |
283 virtual ~TestEventHandler() {} | 275 ~TestEventHandler() override {} |
284 | 276 |
285 virtual void OnMouseEvent(ui::MouseEvent* event) override { | 277 void OnMouseEvent(ui::MouseEvent* event) override { |
286 if (event->flags() & ui::EF_IS_SYNTHESIZED && | 278 if (event->flags() & ui::EF_IS_SYNTHESIZED && |
287 event->type() != ui::ET_MOUSE_EXITED && | 279 event->type() != ui::ET_MOUSE_EXITED && |
288 event->type() != ui::ET_MOUSE_ENTERED) { | 280 event->type() != ui::ET_MOUSE_ENTERED) { |
289 return; | 281 return; |
290 } | 282 } |
291 aura::Window* target = static_cast<aura::Window*>(event->target()); | 283 aura::Window* target = static_cast<aura::Window*>(event->target()); |
292 mouse_location_ = event->root_location(); | 284 mouse_location_ = event->root_location(); |
293 target_root_ = target->GetRootWindow(); | 285 target_root_ = target->GetRootWindow(); |
294 event->StopPropagation(); | 286 event->StopPropagation(); |
295 } | 287 } |
296 | 288 |
297 virtual void OnTouchEvent(ui::TouchEvent* event) override { | 289 void OnTouchEvent(ui::TouchEvent* event) override { |
298 aura::Window* target = static_cast<aura::Window*>(event->target()); | 290 aura::Window* target = static_cast<aura::Window*>(event->target()); |
299 // Only record when the target is the background which covers | 291 // Only record when the target is the background which covers |
300 // entire root window. | 292 // entire root window. |
301 if (target->name() != kDesktopBackgroundView) | 293 if (target->name() != kDesktopBackgroundView) |
302 return; | 294 return; |
303 touch_radius_x_ = event->radius_x(); | 295 touch_radius_x_ = event->radius_x(); |
304 touch_radius_y_ = event->radius_y(); | 296 touch_radius_y_ = event->radius_y(); |
305 event->StopPropagation(); | 297 event->StopPropagation(); |
306 } | 298 } |
307 | 299 |
308 virtual void OnScrollEvent(ui::ScrollEvent* event) override { | 300 void OnScrollEvent(ui::ScrollEvent* event) override { |
309 aura::Window* target = static_cast<aura::Window*>(event->target()); | 301 aura::Window* target = static_cast<aura::Window*>(event->target()); |
310 // Only record when the target is the background which covers | 302 // Only record when the target is the background which covers |
311 // entire root window. | 303 // entire root window. |
312 if (target->name() != kDesktopBackgroundView) | 304 if (target->name() != kDesktopBackgroundView) |
313 return; | 305 return; |
314 | 306 |
315 if (event->type() == ui::ET_SCROLL) { | 307 if (event->type() == ui::ET_SCROLL) { |
316 scroll_x_offset_ = event->x_offset(); | 308 scroll_x_offset_ = event->x_offset(); |
317 scroll_y_offset_ = event->y_offset(); | 309 scroll_y_offset_ = event->y_offset(); |
318 scroll_x_offset_ordinal_ = event->x_offset_ordinal(); | 310 scroll_x_offset_ordinal_ = event->x_offset_ordinal(); |
(...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1335 EXPECT_EQ("aura_root_x", GetXWindowName(secondary->GetHost())); | 1327 EXPECT_EQ("aura_root_x", GetXWindowName(secondary->GetHost())); |
1336 | 1328 |
1337 // Switching back to single display. | 1329 // Switching back to single display. |
1338 UpdateDisplay("300x400"); | 1330 UpdateDisplay("300x400"); |
1339 EXPECT_EQ("aura_root_0", GetXWindowName( | 1331 EXPECT_EQ("aura_root_0", GetXWindowName( |
1340 Shell::GetPrimaryRootWindow()->GetHost())); | 1332 Shell::GetPrimaryRootWindow()->GetHost())); |
1341 } | 1333 } |
1342 #endif | 1334 #endif |
1343 | 1335 |
1344 } // namespace ash | 1336 } // namespace ash |
OLD | NEW |