summaryrefslogtreecommitdiffstats
path: root/ash/wm/workspace/workspace_manager2_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ash/wm/workspace/workspace_manager2_unittest.cc')
-rw-r--r--ash/wm/workspace/workspace_manager2_unittest.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/ash/wm/workspace/workspace_manager2_unittest.cc b/ash/wm/workspace/workspace_manager2_unittest.cc
index 47f51b2..1676b00 100644
--- a/ash/wm/workspace/workspace_manager2_unittest.cc
+++ b/ash/wm/workspace/workspace_manager2_unittest.cc
@@ -853,5 +853,32 @@ TEST_F(WorkspaceManager2Test, VisibilityTests) {
EXPECT_TRUE(w1->IsVisible());
}
+// Verifies windows that are offscreen don't move when switching workspaces.
+TEST_F(WorkspaceManager2Test, DontMoveOnSwitch) {
+ aura::test::EventGenerator generator(
+ Shell::GetPrimaryRootWindow(), gfx::Point());
+ generator.MoveMouseTo(0, 0);
+
+ scoped_ptr<Window> w1(CreateTestWindow());
+ const gfx::Rect w1_bounds(0, 1, 101, 102);
+ ShelfLayoutManager* shelf = Shell::GetInstance()->shelf();
+ const gfx::Rect touches_shelf_bounds(
+ 0, shelf->GetIdealBounds().y() - 10, 101, 102);
+ // Move |w1| to overlap the shelf.
+ w1->SetBounds(touches_shelf_bounds);
+ w1->Show();
+ wm::ActivateWindow(w1.get());
+
+ // Create another window and maximize it.
+ scoped_ptr<Window> w2(CreateTestWindow());
+ w2->SetBounds(gfx::Rect(10, 11, 250, 251));
+ w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
+ w2->Show();
+ wm::ActivateWindow(w2.get());
+
+ // Switch to w1.
+ wm::ActivateWindow(w1.get());
+ EXPECT_EQ(touches_shelf_bounds.ToString(), w1->bounds().ToString());
+}
} // namespace internal
} // namespace ash