Chromium Code Reviews| 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/shelf/shelf_layout_manager.h" | 5 #include "ash/shelf/shelf_layout_manager.h" |
| 6 | 6 |
| 7 #include "ash/accelerators/accelerator_controller.h" | 7 #include "ash/accelerators/accelerator_controller.h" |
| 8 #include "ash/accelerators/accelerator_table.h" | 8 #include "ash/accelerators/accelerator_table.h" |
| 9 #include "ash/focus_cycler.h" | 9 #include "ash/focus_cycler.h" |
| 10 #include "ash/public/cpp/shell_window_ids.h" | 10 #include "ash/public/cpp/shell_window_ids.h" |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 154 | 154 |
| 155 if (type == ui::ET_GESTURE_SCROLL_UPDATE) | 155 if (type == ui::ET_GESTURE_SCROLL_UPDATE) |
| 156 scroll_.Add(delta); | 156 scroll_.Add(delta); |
| 157 | 157 |
| 158 WmShelf* shelf = test::AshTestBase::GetPrimaryShelf(); | 158 WmShelf* shelf = test::AshTestBase::GetPrimaryShelf(); |
| 159 gfx::Rect shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); | 159 gfx::Rect shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); |
| 160 if (shelf->IsHorizontalAlignment()) { | 160 if (shelf->IsHorizontalAlignment()) { |
| 161 EXPECT_EQ(auto_hidden_shelf_widget_bounds_.bottom(), | 161 EXPECT_EQ(auto_hidden_shelf_widget_bounds_.bottom(), |
| 162 shelf_bounds.bottom()); | 162 shelf_bounds.bottom()); |
| 163 EXPECT_EQ(shelf_widget_bounds_.bottom(), shelf_bounds.bottom()); | 163 EXPECT_EQ(shelf_widget_bounds_.bottom(), shelf_bounds.bottom()); |
| 164 } else if (SHELF_ALIGNMENT_RIGHT == shelf->GetAlignment()) { | 164 } else if (SHELF_ALIGNMENT_RIGHT == shelf->alignment()) { |
| 165 EXPECT_EQ(auto_hidden_shelf_widget_bounds_.right(), shelf_bounds.right()); | 165 EXPECT_EQ(auto_hidden_shelf_widget_bounds_.right(), shelf_bounds.right()); |
| 166 EXPECT_EQ(shelf_widget_bounds_.right(), shelf_bounds.right()); | 166 EXPECT_EQ(shelf_widget_bounds_.right(), shelf_bounds.right()); |
| 167 } else if (SHELF_ALIGNMENT_LEFT == shelf->GetAlignment()) { | 167 } else if (SHELF_ALIGNMENT_LEFT == shelf->alignment()) { |
| 168 EXPECT_EQ(auto_hidden_shelf_widget_bounds_.x(), shelf_bounds.x()); | 168 EXPECT_EQ(auto_hidden_shelf_widget_bounds_.x(), shelf_bounds.x()); |
| 169 EXPECT_EQ(shelf_widget_bounds_.x(), shelf_bounds.x()); | 169 EXPECT_EQ(shelf_widget_bounds_.x(), shelf_bounds.x()); |
| 170 } | 170 } |
| 171 | 171 |
| 172 float scroll_delta = | 172 float scroll_delta = |
| 173 GetShelfLayoutManager()->PrimaryAxisValue(scroll_.y(), scroll_.x()); | 173 GetShelfLayoutManager()->PrimaryAxisValue(scroll_.y(), scroll_.x()); |
| 174 bool increasing_drag = | 174 bool increasing_drag = |
| 175 GetShelfLayoutManager()->SelectValueForShelfAlignment( | 175 GetShelfLayoutManager()->SelectValueForShelfAlignment( |
| 176 scroll_delta<0, scroll_delta> 0, scroll_delta < 0); | 176 scroll_delta<0, scroll_delta> 0, scroll_delta < 0); |
| 177 int shelf_size = GetShelfLayoutManager()->PrimaryAxisValue( | 177 int shelf_size = GetShelfLayoutManager()->PrimaryAxisValue( |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 385 // Swipe up yet again to show it. | 385 // Swipe up yet again to show it. |
| 386 end = start + delta; | 386 end = start + delta; |
| 387 generator.GestureScrollSequenceWithCallback( | 387 generator.GestureScrollSequenceWithCallback( |
| 388 end, start, kTimeDelta, kNumScrollSteps, | 388 end, start, kTimeDelta, kNumScrollSteps, |
| 389 base::Bind(&ShelfDragCallback::ProcessScroll, | 389 base::Bind(&ShelfDragCallback::ProcessScroll, |
| 390 base::Unretained(&handler))); | 390 base::Unretained(&handler))); |
| 391 | 391 |
| 392 // Swipe down very little. It shouldn't change any state. | 392 // Swipe down very little. It shouldn't change any state. |
| 393 if (shelf->IsHorizontalAlignment()) | 393 if (shelf->IsHorizontalAlignment()) |
| 394 end.set_y(start.y() + shelf_shown.height() * 3 / 10); | 394 end.set_y(start.y() + shelf_shown.height() * 3 / 10); |
| 395 else if (SHELF_ALIGNMENT_LEFT == shelf->GetAlignment()) | 395 else if (SHELF_ALIGNMENT_LEFT == shelf->alignment()) |
|
James Cook
2017/04/17 16:54:35
Thanks for fixing these.
| |
| 396 end.set_x(start.x() - shelf_shown.width() * 3 / 10); | 396 end.set_x(start.x() - shelf_shown.width() * 3 / 10); |
| 397 else if (SHELF_ALIGNMENT_RIGHT == shelf->GetAlignment()) | 397 else if (SHELF_ALIGNMENT_RIGHT == shelf->alignment()) |
| 398 end.set_x(start.x() + shelf_shown.width() * 3 / 10); | 398 end.set_x(start.x() + shelf_shown.width() * 3 / 10); |
| 399 generator.GestureScrollSequence(start, end, kTimeDelta, 5); | 399 generator.GestureScrollSequence(start, end, kTimeDelta, 5); |
| 400 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 400 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 401 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 401 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
| 402 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 402 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
| 403 EXPECT_EQ(shelf_shown.ToString(), | 403 EXPECT_EQ(shelf_shown.ToString(), |
| 404 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 404 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
| 405 | 405 |
| 406 // Swipe down again to hide. | 406 // Swipe down again to hide. |
| 407 end = start + delta; | 407 end = start + delta; |
| 408 generator.GestureScrollSequenceWithCallback( | 408 generator.GestureScrollSequenceWithCallback( |
| 409 start, end, kTimeDelta, kNumScrollSteps, | 409 start, end, kTimeDelta, kNumScrollSteps, |
| 410 base::Bind(&ShelfDragCallback::ProcessScroll, | 410 base::Bind(&ShelfDragCallback::ProcessScroll, |
| 411 base::Unretained(&handler))); | 411 base::Unretained(&handler))); |
| 412 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 412 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
| 413 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); | 413 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); |
| 414 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 414 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
| 415 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); | 415 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); |
| 416 EXPECT_EQ(shelf_hidden.ToString(), | 416 EXPECT_EQ(shelf_hidden.ToString(), |
| 417 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 417 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
| 418 | 418 |
| 419 // Swipe up in extended hit region to show it. | 419 // Swipe up in extended hit region to show it. |
| 420 gfx::Point extended_start = start; | 420 gfx::Point extended_start = start; |
| 421 if (shelf->IsHorizontalAlignment()) | 421 if (shelf->IsHorizontalAlignment()) |
| 422 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() - 1); | 422 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() - 1); |
| 423 else if (SHELF_ALIGNMENT_LEFT == shelf->GetAlignment()) | 423 else if (SHELF_ALIGNMENT_LEFT == shelf->alignment()) |
| 424 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + | 424 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + |
| 425 1); | 425 1); |
| 426 else if (SHELF_ALIGNMENT_RIGHT == shelf->GetAlignment()) | 426 else if (SHELF_ALIGNMENT_RIGHT == shelf->alignment()) |
| 427 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); | 427 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); |
| 428 end = extended_start - delta; | 428 end = extended_start - delta; |
| 429 generator.GestureScrollSequenceWithCallback( | 429 generator.GestureScrollSequenceWithCallback( |
| 430 extended_start, end, kTimeDelta, kNumScrollSteps, | 430 extended_start, end, kTimeDelta, kNumScrollSteps, |
| 431 base::Bind(&ShelfDragCallback::ProcessScroll, | 431 base::Bind(&ShelfDragCallback::ProcessScroll, |
| 432 base::Unretained(&handler))); | 432 base::Unretained(&handler))); |
| 433 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 433 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 434 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 434 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
| 435 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 435 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
| 436 EXPECT_EQ(shelf_shown.ToString(), | 436 EXPECT_EQ(shelf_shown.ToString(), |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 462 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); | 462 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); |
| 463 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 463 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
| 464 EXPECT_EQ(shelf_hidden.ToString(), | 464 EXPECT_EQ(shelf_hidden.ToString(), |
| 465 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 465 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
| 466 | 466 |
| 467 // Swipe up from below the shelf where a bezel would be, this should show the | 467 // Swipe up from below the shelf where a bezel would be, this should show the |
| 468 // shelf. | 468 // shelf. |
| 469 gfx::Point below_start = start; | 469 gfx::Point below_start = start; |
| 470 if (shelf->IsHorizontalAlignment()) | 470 if (shelf->IsHorizontalAlignment()) |
| 471 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); | 471 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); |
| 472 else if (SHELF_ALIGNMENT_LEFT == shelf->GetAlignment()) | 472 else if (SHELF_ALIGNMENT_LEFT == shelf->alignment()) |
| 473 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); | 473 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); |
| 474 else if (SHELF_ALIGNMENT_RIGHT == shelf->GetAlignment()) | 474 else if (SHELF_ALIGNMENT_RIGHT == shelf->alignment()) |
| 475 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); | 475 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); |
| 476 end = below_start - delta; | 476 end = below_start - delta; |
| 477 generator.GestureScrollSequence(below_start, end, kTimeDelta, | 477 generator.GestureScrollSequence(below_start, end, kTimeDelta, |
| 478 kNumScrollSteps); | 478 kNumScrollSteps); |
| 479 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 479 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 480 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 480 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
| 481 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 481 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
| 482 EXPECT_EQ(shelf_shown.ToString(), | 482 EXPECT_EQ(shelf_shown.ToString(), |
| 483 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 483 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
| 484 | 484 |
| (...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1274 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1274 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 1275 | 1275 |
| 1276 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); | 1276 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); |
| 1277 gfx::Rect shelf_bounds(GetShelfWidget()->GetWindowBoundsInScreen()); | 1277 gfx::Rect shelf_bounds(GetShelfWidget()->GetWindowBoundsInScreen()); |
| 1278 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1278 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
| 1279 ASSERT_NE(-1, display.id()); | 1279 ASSERT_NE(-1, display.id()); |
| 1280 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1280 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
| 1281 display.GetWorkAreaInsets().left()); | 1281 display.GetWorkAreaInsets().left()); |
| 1282 EXPECT_GE(shelf_bounds.width(), | 1282 EXPECT_GE(shelf_bounds.width(), |
| 1283 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); | 1283 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); |
| 1284 EXPECT_EQ(SHELF_ALIGNMENT_LEFT, GetPrimarySystemTray()->shelf_alignment()); | 1284 EXPECT_EQ(SHELF_ALIGNMENT_LEFT, GetPrimarySystemTray()->shelf()->alignment()); |
| 1285 StatusAreaWidget* status_area_widget = GetShelfWidget()->status_area_widget(); | 1285 StatusAreaWidget* status_area_widget = GetShelfWidget()->status_area_widget(); |
| 1286 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); | 1286 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); |
| 1287 // TODO(estade): Re-enable this check. See crbug.com/660928. | 1287 // TODO(estade): Re-enable this check. See crbug.com/660928. |
| 1288 // EXPECT_GE( | 1288 // EXPECT_GE( |
| 1289 // status_bounds.width(), | 1289 // status_bounds.width(), |
| 1290 // status_area_widget->GetContentsView()->GetPreferredSize().width()); | 1290 // status_area_widget->GetContentsView()->GetPreferredSize().width()); |
| 1291 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1291 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
| 1292 display.GetWorkAreaInsets().left()); | 1292 display.GetWorkAreaInsets().left()); |
| 1293 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); | 1293 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
| 1294 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | 1294 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 1305 | 1305 |
| 1306 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1306 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
| 1307 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); | 1307 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); |
| 1308 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); | 1308 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); |
| 1309 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1309 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
| 1310 ASSERT_NE(-1, display.id()); | 1310 ASSERT_NE(-1, display.id()); |
| 1311 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1311 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
| 1312 display.GetWorkAreaInsets().right()); | 1312 display.GetWorkAreaInsets().right()); |
| 1313 EXPECT_GE(shelf_bounds.width(), | 1313 EXPECT_GE(shelf_bounds.width(), |
| 1314 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); | 1314 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); |
| 1315 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, GetPrimarySystemTray()->shelf_alignment()); | 1315 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, |
| 1316 GetPrimarySystemTray()->shelf()->alignment()); | |
| 1316 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); | 1317 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); |
| 1317 // TODO(estade): Re-enable this check. See crbug.com/660928. | 1318 // TODO(estade): Re-enable this check. See crbug.com/660928. |
| 1318 // EXPECT_GE( | 1319 // EXPECT_GE( |
| 1319 // status_bounds.width(), | 1320 // status_bounds.width(), |
| 1320 // status_area_widget->GetContentsView()->GetPreferredSize().width()); | 1321 // status_area_widget->GetContentsView()->GetPreferredSize().width()); |
| 1321 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1322 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
| 1322 display.GetWorkAreaInsets().right()); | 1323 display.GetWorkAreaInsets().right()); |
| 1323 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); | 1324 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
| 1324 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | 1325 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); |
| 1325 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); | 1326 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); |
| (...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1841 // Open keyboard in sticky mode. | 1842 // Open keyboard in sticky mode. |
| 1842 kb_controller->ShowKeyboard(true); | 1843 kb_controller->ShowKeyboard(true); |
| 1843 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); | 1844 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); |
| 1844 | 1845 |
| 1845 // Work area should be changed. | 1846 // Work area should be changed. |
| 1846 EXPECT_NE(orig_work_area, | 1847 EXPECT_NE(orig_work_area, |
| 1847 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); | 1848 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); |
| 1848 } | 1849 } |
| 1849 | 1850 |
| 1850 } // namespace ash | 1851 } // namespace ash |
| OLD | NEW |