| 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/wm/workspace/workspace_window_resizer.h" | 5 #include "ash/wm/workspace/workspace_window_resizer.h" |
| 6 | 6 |
| 7 #include "ash/ash_constants.h" | 7 #include "ash/ash_constants.h" |
| 8 #include "ash/ash_switches.h" | 8 #include "ash/ash_switches.h" |
| 9 #include "ash/display/display_manager.h" | 9 #include "ash/display/display_manager.h" |
| 10 #include "ash/root_window_controller.h" | 10 #include "ash/root_window_controller.h" |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 const gfx::Point& point_in_parent, | 175 const gfx::Point& point_in_parent, |
| 176 int window_component) { | 176 int window_component) { |
| 177 WindowResizer* resizer = CreateWindowResizer( | 177 WindowResizer* resizer = CreateWindowResizer( |
| 178 window, | 178 window, |
| 179 point_in_parent, | 179 point_in_parent, |
| 180 window_component, | 180 window_component, |
| 181 aura::client::WINDOW_MOVE_SOURCE_MOUSE).release(); | 181 aura::client::WINDOW_MOVE_SOURCE_MOUSE).release(); |
| 182 workspace_resizer_ = WorkspaceWindowResizer::instance_; | 182 workspace_resizer_ = WorkspaceWindowResizer::instance_; |
| 183 return resizer; | 183 return resizer; |
| 184 } | 184 } |
| 185 WorkspaceWindowResizer* CreateWorkspaceResizerForTest( |
| 186 aura::Window* window, |
| 187 const gfx::Point& point_in_parent, |
| 188 int window_component, |
| 189 aura::client::WindowMoveSource source, |
| 190 const std::vector<aura::Window*>& attached_windows) { |
| 191 wm::WindowState* window_state = wm::GetWindowState(window); |
| 192 window_state->CreateDragDetails( |
| 193 window, point_in_parent, window_component, source); |
| 194 return WorkspaceWindowResizer::Create(window_state, attached_windows); |
| 195 } |
| 185 | 196 |
| 186 PhantomWindowController* snap_phantom_window_controller() const { | 197 PhantomWindowController* snap_phantom_window_controller() const { |
| 187 return workspace_resizer_->snap_phantom_window_controller_.get(); | 198 return workspace_resizer_->snap_phantom_window_controller_.get(); |
| 188 } | 199 } |
| 189 | 200 |
| 190 gfx::Point CalculateDragPoint(const WindowResizer& resizer, | 201 gfx::Point CalculateDragPoint(const WindowResizer& resizer, |
| 191 int delta_x, | 202 int delta_x, |
| 192 int delta_y) const { | 203 int delta_y) const { |
| 193 gfx::Point location = resizer.GetInitialLocation(); | 204 gfx::Point location = resizer.GetInitialLocation(); |
| 194 location.set_x(location.x() + delta_x); | 205 location.set_x(location.x() + delta_x); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 }; | 269 }; |
| 259 | 270 |
| 260 // Assertions around attached window resize dragging from the right with 2 | 271 // Assertions around attached window resize dragging from the right with 2 |
| 261 // windows. | 272 // windows. |
| 262 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_2) { | 273 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_2) { |
| 263 window_->SetBounds(gfx::Rect(0, 300, 400, 300)); | 274 window_->SetBounds(gfx::Rect(0, 300, 400, 300)); |
| 264 window2_->SetBounds(gfx::Rect(400, 200, 100, 200)); | 275 window2_->SetBounds(gfx::Rect(400, 200, 100, 200)); |
| 265 | 276 |
| 266 std::vector<aura::Window*> windows; | 277 std::vector<aura::Window*> windows; |
| 267 windows.push_back(window2_.get()); | 278 windows.push_back(window2_.get()); |
| 268 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 279 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 269 window_.get(), gfx::Point(), HTRIGHT, | 280 window_.get(), gfx::Point(), HTRIGHT, |
| 270 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 281 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 271 ASSERT_TRUE(resizer.get()); | 282 ASSERT_TRUE(resizer.get()); |
| 272 // Move it 100 to the right, which should expand w1 and push w2. | 283 // Move it 100 to the right, which should expand w1 and push w2. |
| 273 resizer->Drag(CalculateDragPoint(*resizer, 100, 10), 0); | 284 resizer->Drag(CalculateDragPoint(*resizer, 100, 10), 0); |
| 274 EXPECT_EQ("0,300 500x300", window_->bounds().ToString()); | 285 EXPECT_EQ("0,300 500x300", window_->bounds().ToString()); |
| 275 EXPECT_EQ("500,200 100x200", window2_->bounds().ToString()); | 286 EXPECT_EQ("500,200 100x200", window2_->bounds().ToString()); |
| 276 | 287 |
| 277 // Push off the screen, w2 should be resized to its min. | 288 // Push off the screen, w2 should be resized to its min. |
| 278 delegate2_.set_min_size(gfx::Size(20, 20)); | 289 delegate2_.set_min_size(gfx::Size(20, 20)); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 292 EXPECT_EQ("400,200 100x200", window2_->bounds().ToString()); | 303 EXPECT_EQ("400,200 100x200", window2_->bounds().ToString()); |
| 293 } | 304 } |
| 294 | 305 |
| 295 // Assertions around collapsing and expanding. | 306 // Assertions around collapsing and expanding. |
| 296 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_Compress) { | 307 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_Compress) { |
| 297 window_->SetBounds(gfx::Rect( 0, 300, 400, 300)); | 308 window_->SetBounds(gfx::Rect( 0, 300, 400, 300)); |
| 298 window2_->SetBounds(gfx::Rect(400, 200, 100, 200)); | 309 window2_->SetBounds(gfx::Rect(400, 200, 100, 200)); |
| 299 | 310 |
| 300 std::vector<aura::Window*> windows; | 311 std::vector<aura::Window*> windows; |
| 301 windows.push_back(window2_.get()); | 312 windows.push_back(window2_.get()); |
| 302 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 313 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 303 window_.get(), gfx::Point(), HTRIGHT, | 314 window_.get(), gfx::Point(), HTRIGHT, |
| 304 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 315 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 305 ASSERT_TRUE(resizer.get()); | 316 ASSERT_TRUE(resizer.get()); |
| 306 // Move it 100 to the left, which should expand w2 and collapse w1. | 317 // Move it 100 to the left, which should expand w2 and collapse w1. |
| 307 resizer->Drag(CalculateDragPoint(*resizer, -100, 10), 0); | 318 resizer->Drag(CalculateDragPoint(*resizer, -100, 10), 0); |
| 308 EXPECT_EQ("0,300 300x300", window_->bounds().ToString()); | 319 EXPECT_EQ("0,300 300x300", window_->bounds().ToString()); |
| 309 EXPECT_EQ("300,200 200x200", window2_->bounds().ToString()); | 320 EXPECT_EQ("300,200 200x200", window2_->bounds().ToString()); |
| 310 | 321 |
| 311 // Collapse all the way to w1's min. | 322 // Collapse all the way to w1's min. |
| 312 delegate_.set_min_size(gfx::Size(20, 20)); | 323 delegate_.set_min_size(gfx::Size(20, 20)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 330 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3) { | 341 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3) { |
| 331 window_->SetBounds(gfx::Rect( 100, 300, 200, 300)); | 342 window_->SetBounds(gfx::Rect( 100, 300, 200, 300)); |
| 332 window2_->SetBounds(gfx::Rect(300, 300, 150, 200)); | 343 window2_->SetBounds(gfx::Rect(300, 300, 150, 200)); |
| 333 window3_->SetBounds(gfx::Rect(450, 300, 100, 200)); | 344 window3_->SetBounds(gfx::Rect(450, 300, 100, 200)); |
| 334 delegate2_.set_min_size(gfx::Size(52, 50)); | 345 delegate2_.set_min_size(gfx::Size(52, 50)); |
| 335 delegate3_.set_min_size(gfx::Size(38, 50)); | 346 delegate3_.set_min_size(gfx::Size(38, 50)); |
| 336 | 347 |
| 337 std::vector<aura::Window*> windows; | 348 std::vector<aura::Window*> windows; |
| 338 windows.push_back(window2_.get()); | 349 windows.push_back(window2_.get()); |
| 339 windows.push_back(window3_.get()); | 350 windows.push_back(window3_.get()); |
| 340 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 351 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 341 window_.get(), gfx::Point(), HTRIGHT, | 352 window_.get(), gfx::Point(), HTRIGHT, |
| 342 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 353 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 343 ASSERT_TRUE(resizer.get()); | 354 ASSERT_TRUE(resizer.get()); |
| 344 // Move it 100 to the right, which should expand w1 and push w2 and w3. | 355 // Move it 100 to the right, which should expand w1 and push w2 and w3. |
| 345 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); | 356 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); |
| 346 EXPECT_EQ("100,300 300x300", window_->bounds().ToString()); | 357 EXPECT_EQ("100,300 300x300", window_->bounds().ToString()); |
| 347 EXPECT_EQ("400,300 150x200", window2_->bounds().ToString()); | 358 EXPECT_EQ("400,300 150x200", window2_->bounds().ToString()); |
| 348 EXPECT_EQ("550,300 100x200", window3_->bounds().ToString()); | 359 EXPECT_EQ("550,300 100x200", window3_->bounds().ToString()); |
| 349 | 360 |
| 350 // Move it 300, things should compress. | 361 // Move it 300, things should compress. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 371 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3_Compress) { | 382 TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3_Compress) { |
| 372 window_->SetBounds(gfx::Rect( 100, 300, 200, 300)); | 383 window_->SetBounds(gfx::Rect( 100, 300, 200, 300)); |
| 373 window2_->SetBounds(gfx::Rect(300, 300, 200, 200)); | 384 window2_->SetBounds(gfx::Rect(300, 300, 200, 200)); |
| 374 window3_->SetBounds(gfx::Rect(450, 300, 100, 200)); | 385 window3_->SetBounds(gfx::Rect(450, 300, 100, 200)); |
| 375 delegate2_.set_min_size(gfx::Size(52, 50)); | 386 delegate2_.set_min_size(gfx::Size(52, 50)); |
| 376 delegate3_.set_min_size(gfx::Size(38, 50)); | 387 delegate3_.set_min_size(gfx::Size(38, 50)); |
| 377 | 388 |
| 378 std::vector<aura::Window*> windows; | 389 std::vector<aura::Window*> windows; |
| 379 windows.push_back(window2_.get()); | 390 windows.push_back(window2_.get()); |
| 380 windows.push_back(window3_.get()); | 391 windows.push_back(window3_.get()); |
| 381 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 392 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 382 window_.get(), gfx::Point(), HTRIGHT, | 393 window_.get(), gfx::Point(), HTRIGHT, |
| 383 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 394 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 384 ASSERT_TRUE(resizer.get()); | 395 ASSERT_TRUE(resizer.get()); |
| 385 // Move it -100 to the right, which should collapse w1 and expand w2 and w3. | 396 // Move it -100 to the right, which should collapse w1 and expand w2 and w3. |
| 386 resizer->Drag(CalculateDragPoint(*resizer, -100, -10), 0); | 397 resizer->Drag(CalculateDragPoint(*resizer, -100, -10), 0); |
| 387 EXPECT_EQ("100,300 100x300", window_->bounds().ToString()); | 398 EXPECT_EQ("100,300 100x300", window_->bounds().ToString()); |
| 388 EXPECT_EQ("200,300 266x200", window2_->bounds().ToString()); | 399 EXPECT_EQ("200,300 266x200", window2_->bounds().ToString()); |
| 389 EXPECT_EQ("466,300 134x200", window3_->bounds().ToString()); | 400 EXPECT_EQ("466,300 134x200", window3_->bounds().ToString()); |
| 390 | 401 |
| 391 // Move it 100 to the right. | 402 // Move it 100 to the right. |
| 392 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); | 403 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); |
| 393 EXPECT_EQ("100,300 300x300", window_->bounds().ToString()); | 404 EXPECT_EQ("100,300 300x300", window_->bounds().ToString()); |
| 394 EXPECT_EQ("400,300 200x200", window2_->bounds().ToString()); | 405 EXPECT_EQ("400,300 200x200", window2_->bounds().ToString()); |
| 395 EXPECT_EQ("600,300 100x200", window3_->bounds().ToString()); | 406 EXPECT_EQ("600,300 100x200", window3_->bounds().ToString()); |
| 396 | 407 |
| 397 // 100 to the left again. | 408 // 100 to the left again. |
| 398 resizer->Drag(CalculateDragPoint(*resizer, -100, -10), 0); | 409 resizer->Drag(CalculateDragPoint(*resizer, -100, -10), 0); |
| 399 EXPECT_EQ("100,300 100x300", window_->bounds().ToString()); | 410 EXPECT_EQ("100,300 100x300", window_->bounds().ToString()); |
| 400 EXPECT_EQ("200,300 266x200", window2_->bounds().ToString()); | 411 EXPECT_EQ("200,300 266x200", window2_->bounds().ToString()); |
| 401 EXPECT_EQ("466,300 134x200", window3_->bounds().ToString()); | 412 EXPECT_EQ("466,300 134x200", window3_->bounds().ToString()); |
| 402 } | 413 } |
| 403 | 414 |
| 404 // Assertions around collapsing and expanding from the bottom. | 415 // Assertions around collapsing and expanding from the bottom. |
| 405 TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_Compress) { | 416 TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_Compress) { |
| 406 window_->SetBounds(gfx::Rect( 0, 100, 400, 300)); | 417 window_->SetBounds(gfx::Rect( 0, 100, 400, 300)); |
| 407 window2_->SetBounds(gfx::Rect(400, 400, 100, 200)); | 418 window2_->SetBounds(gfx::Rect(400, 400, 100, 200)); |
| 408 | 419 |
| 409 std::vector<aura::Window*> windows; | 420 std::vector<aura::Window*> windows; |
| 410 windows.push_back(window2_.get()); | 421 windows.push_back(window2_.get()); |
| 411 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 422 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 412 window_.get(), gfx::Point(), HTBOTTOM, | 423 window_.get(), gfx::Point(), HTBOTTOM, |
| 413 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 424 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 414 ASSERT_TRUE(resizer.get()); | 425 ASSERT_TRUE(resizer.get()); |
| 415 // Move it up 100, which should expand w2 and collapse w1. | 426 // Move it up 100, which should expand w2 and collapse w1. |
| 416 resizer->Drag(CalculateDragPoint(*resizer, 10, -100), 0); | 427 resizer->Drag(CalculateDragPoint(*resizer, 10, -100), 0); |
| 417 EXPECT_EQ("0,100 400x200", window_->bounds().ToString()); | 428 EXPECT_EQ("0,100 400x200", window_->bounds().ToString()); |
| 418 EXPECT_EQ("400,300 100x300", window2_->bounds().ToString()); | 429 EXPECT_EQ("400,300 100x300", window2_->bounds().ToString()); |
| 419 | 430 |
| 420 // Collapse all the way to w1's min. | 431 // Collapse all the way to w1's min. |
| 421 delegate_.set_min_size(gfx::Size(20, 20)); | 432 delegate_.set_min_size(gfx::Size(20, 20)); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 435 } | 446 } |
| 436 | 447 |
| 437 // Assertions around attached window resize dragging from the bottom with 2 | 448 // Assertions around attached window resize dragging from the bottom with 2 |
| 438 // windows. | 449 // windows. |
| 439 TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_2) { | 450 TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_2) { |
| 440 window_->SetBounds(gfx::Rect( 0, 50, 400, 200)); | 451 window_->SetBounds(gfx::Rect( 0, 50, 400, 200)); |
| 441 window2_->SetBounds(gfx::Rect(0, 250, 200, 100)); | 452 window2_->SetBounds(gfx::Rect(0, 250, 200, 100)); |
| 442 | 453 |
| 443 std::vector<aura::Window*> windows; | 454 std::vector<aura::Window*> windows; |
| 444 windows.push_back(window2_.get()); | 455 windows.push_back(window2_.get()); |
| 445 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 456 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 446 window_.get(), gfx::Point(), HTBOTTOM, | 457 window_.get(), gfx::Point(), HTBOTTOM, |
| 447 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 458 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 448 ASSERT_TRUE(resizer.get()); | 459 ASSERT_TRUE(resizer.get()); |
| 449 // Move it 100 to the bottom, which should expand w1 and push w2. | 460 // Move it 100 to the bottom, which should expand w1 and push w2. |
| 450 resizer->Drag(CalculateDragPoint(*resizer, 10, 100), 0); | 461 resizer->Drag(CalculateDragPoint(*resizer, 10, 100), 0); |
| 451 EXPECT_EQ("0,50 400x300", window_->bounds().ToString()); | 462 EXPECT_EQ("0,50 400x300", window_->bounds().ToString()); |
| 452 EXPECT_EQ("0,350 200x100", window2_->bounds().ToString()); | 463 EXPECT_EQ("0,350 200x100", window2_->bounds().ToString()); |
| 453 | 464 |
| 454 // Push off the screen, w2 should be resized to its min. | 465 // Push off the screen, w2 should be resized to its min. |
| 455 delegate2_.set_min_size(gfx::Size(20, 20)); | 466 delegate2_.set_min_size(gfx::Size(20, 20)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 485 | 496 |
| 486 window_->SetBounds(gfx::Rect( 300, 100, 300, 200)); | 497 window_->SetBounds(gfx::Rect( 300, 100, 300, 200)); |
| 487 window2_->SetBounds(gfx::Rect(300, 300, 200, 150)); | 498 window2_->SetBounds(gfx::Rect(300, 300, 200, 150)); |
| 488 window3_->SetBounds(gfx::Rect(300, 450, 200, 100)); | 499 window3_->SetBounds(gfx::Rect(300, 450, 200, 100)); |
| 489 delegate2_.set_min_size(gfx::Size(50, 52)); | 500 delegate2_.set_min_size(gfx::Size(50, 52)); |
| 490 delegate3_.set_min_size(gfx::Size(50, 38)); | 501 delegate3_.set_min_size(gfx::Size(50, 38)); |
| 491 | 502 |
| 492 std::vector<aura::Window*> windows; | 503 std::vector<aura::Window*> windows; |
| 493 windows.push_back(window2_.get()); | 504 windows.push_back(window2_.get()); |
| 494 windows.push_back(window3_.get()); | 505 windows.push_back(window3_.get()); |
| 495 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 506 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 496 window_.get(), gfx::Point(), HTBOTTOM, | 507 window_.get(), gfx::Point(), HTBOTTOM, |
| 497 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 508 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 498 ASSERT_TRUE(resizer.get()); | 509 ASSERT_TRUE(resizer.get()); |
| 499 // Move it 100 down, which should expand w1 and push w2 and w3. | 510 // Move it 100 down, which should expand w1 and push w2 and w3. |
| 500 resizer->Drag(CalculateDragPoint(*resizer, -10, 100), 0); | 511 resizer->Drag(CalculateDragPoint(*resizer, -10, 100), 0); |
| 501 EXPECT_EQ("300,100 300x300", window_->bounds().ToString()); | 512 EXPECT_EQ("300,100 300x300", window_->bounds().ToString()); |
| 502 EXPECT_EQ("300,400 200x150", window2_->bounds().ToString()); | 513 EXPECT_EQ("300,400 200x150", window2_->bounds().ToString()); |
| 503 EXPECT_EQ("300,550 200x100", window3_->bounds().ToString()); | 514 EXPECT_EQ("300,550 200x100", window3_->bounds().ToString()); |
| 504 | 515 |
| 505 // Move it 296 things should compress. | 516 // Move it 296 things should compress. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 526 TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_3_Compress) { | 537 TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_3_Compress) { |
| 527 window_->SetBounds(gfx::Rect( 0, 0, 200, 200)); | 538 window_->SetBounds(gfx::Rect( 0, 0, 200, 200)); |
| 528 window2_->SetBounds(gfx::Rect(10, 200, 200, 200)); | 539 window2_->SetBounds(gfx::Rect(10, 200, 200, 200)); |
| 529 window3_->SetBounds(gfx::Rect(20, 400, 100, 100)); | 540 window3_->SetBounds(gfx::Rect(20, 400, 100, 100)); |
| 530 delegate2_.set_min_size(gfx::Size(52, 50)); | 541 delegate2_.set_min_size(gfx::Size(52, 50)); |
| 531 delegate3_.set_min_size(gfx::Size(38, 50)); | 542 delegate3_.set_min_size(gfx::Size(38, 50)); |
| 532 | 543 |
| 533 std::vector<aura::Window*> windows; | 544 std::vector<aura::Window*> windows; |
| 534 windows.push_back(window2_.get()); | 545 windows.push_back(window2_.get()); |
| 535 windows.push_back(window3_.get()); | 546 windows.push_back(window3_.get()); |
| 536 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 547 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 537 window_.get(), gfx::Point(), HTBOTTOM, | 548 window_.get(), gfx::Point(), HTBOTTOM, |
| 538 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 549 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 539 ASSERT_TRUE(resizer.get()); | 550 ASSERT_TRUE(resizer.get()); |
| 540 // Move it 100 up, which should collapse w1 and expand w2 and w3. | 551 // Move it 100 up, which should collapse w1 and expand w2 and w3. |
| 541 resizer->Drag(CalculateDragPoint(*resizer, -10, -100), 0); | 552 resizer->Drag(CalculateDragPoint(*resizer, -10, -100), 0); |
| 542 EXPECT_EQ("0,0 200x100", window_->bounds().ToString()); | 553 EXPECT_EQ("0,0 200x100", window_->bounds().ToString()); |
| 543 EXPECT_EQ("10,100 200x266", window2_->bounds().ToString()); | 554 EXPECT_EQ("10,100 200x266", window2_->bounds().ToString()); |
| 544 EXPECT_EQ("20,366 100x134", window3_->bounds().ToString()); | 555 EXPECT_EQ("20,366 100x134", window3_->bounds().ToString()); |
| 545 | 556 |
| 546 // Move it 100 down. | 557 // Move it 100 down. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 563 window2_->SetBounds(gfx::Rect(400, 200, 100, 200)); | 574 window2_->SetBounds(gfx::Rect(400, 200, 100, 200)); |
| 564 | 575 |
| 565 Shell* shell = Shell::GetInstance(); | 576 Shell* shell = Shell::GetInstance(); |
| 566 aura::test::EventGenerator generator(window_->GetRootWindow()); | 577 aura::test::EventGenerator generator(window_->GetRootWindow()); |
| 567 | 578 |
| 568 // The cursor should not be locked initially. | 579 // The cursor should not be locked initially. |
| 569 EXPECT_FALSE(shell->cursor_manager()->IsCursorLocked()); | 580 EXPECT_FALSE(shell->cursor_manager()->IsCursorLocked()); |
| 570 | 581 |
| 571 std::vector<aura::Window*> windows; | 582 std::vector<aura::Window*> windows; |
| 572 windows.push_back(window2_.get()); | 583 windows.push_back(window2_.get()); |
| 573 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 584 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 574 window_.get(), gfx::Point(), HTRIGHT, | 585 window_.get(), gfx::Point(), HTRIGHT, |
| 575 aura::client::WINDOW_MOVE_SOURCE_TOUCH, windows)); | 586 aura::client::WINDOW_MOVE_SOURCE_TOUCH, windows)); |
| 576 ASSERT_TRUE(resizer.get()); | 587 ASSERT_TRUE(resizer.get()); |
| 577 | 588 |
| 578 // Creating a WorkspaceWindowResizer should not lock the cursor. | 589 // Creating a WorkspaceWindowResizer should not lock the cursor. |
| 579 EXPECT_FALSE(shell->cursor_manager()->IsCursorLocked()); | 590 EXPECT_FALSE(shell->cursor_manager()->IsCursorLocked()); |
| 580 | 591 |
| 581 // The cursor should be hidden after touching the screen and | 592 // The cursor should be hidden after touching the screen and |
| 582 // starting a drag. | 593 // starting a drag. |
| 583 EXPECT_TRUE(shell->cursor_manager()->IsCursorVisible()); | 594 EXPECT_TRUE(shell->cursor_manager()->IsCursorVisible()); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 | 730 |
| 720 // Verifies windows are correctly restacked when reordering multiple windows. | 731 // Verifies windows are correctly restacked when reordering multiple windows. |
| 721 TEST_F(WorkspaceWindowResizerTest, RestackAttached) { | 732 TEST_F(WorkspaceWindowResizerTest, RestackAttached) { |
| 722 window_->SetBounds(gfx::Rect( 0, 0, 200, 300)); | 733 window_->SetBounds(gfx::Rect( 0, 0, 200, 300)); |
| 723 window2_->SetBounds(gfx::Rect(200, 0, 100, 200)); | 734 window2_->SetBounds(gfx::Rect(200, 0, 100, 200)); |
| 724 window3_->SetBounds(gfx::Rect(300, 0, 100, 100)); | 735 window3_->SetBounds(gfx::Rect(300, 0, 100, 100)); |
| 725 | 736 |
| 726 { | 737 { |
| 727 std::vector<aura::Window*> windows; | 738 std::vector<aura::Window*> windows; |
| 728 windows.push_back(window2_.get()); | 739 windows.push_back(window2_.get()); |
| 729 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 740 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 730 window_.get(), gfx::Point(), HTRIGHT, | 741 window_.get(), gfx::Point(), HTRIGHT, |
| 731 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 742 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 732 ASSERT_TRUE(resizer.get()); | 743 ASSERT_TRUE(resizer.get()); |
| 733 // Move it 100 to the right, which should expand w1 and push w2 and w3. | 744 // Move it 100 to the right, which should expand w1 and push w2 and w3. |
| 734 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); | 745 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); |
| 735 | 746 |
| 736 // 2 should be topmost since it's initially the highest in the stack. | 747 // 2 should be topmost since it's initially the highest in the stack. |
| 737 EXPECT_EQ("2 1 3", WindowOrderAsString(window_->parent())); | 748 EXPECT_EQ("2 1 3", WindowOrderAsString(window_->parent())); |
| 738 } | 749 } |
| 739 | 750 |
| 740 { | 751 { |
| 741 std::vector<aura::Window*> windows; | 752 std::vector<aura::Window*> windows; |
| 742 windows.push_back(window3_.get()); | 753 windows.push_back(window3_.get()); |
| 743 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 754 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 744 window2_.get(), gfx::Point(), HTRIGHT, | 755 window2_.get(), gfx::Point(), HTRIGHT, |
| 745 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 756 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 746 ASSERT_TRUE(resizer.get()); | 757 ASSERT_TRUE(resizer.get()); |
| 747 // Move it 100 to the right, which should expand w1 and push w2 and w3. | 758 // Move it 100 to the right, which should expand w1 and push w2 and w3. |
| 748 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); | 759 resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0); |
| 749 | 760 |
| 750 // 2 should be topmost since it's initially the highest in the stack. | 761 // 2 should be topmost since it's initially the highest in the stack. |
| 751 EXPECT_EQ("2 3 1", WindowOrderAsString(window_->parent())); | 762 EXPECT_EQ("2 3 1", WindowOrderAsString(window_->parent())); |
| 752 } | 763 } |
| 753 } | 764 } |
| (...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1539 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); | 1550 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); |
| 1540 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); | 1551 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); |
| 1541 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); | 1552 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); |
| 1542 window4_->SetBounds(gfx::Rect(400, 100, 100, 100)); | 1553 window4_->SetBounds(gfx::Rect(400, 100, 100, 100)); |
| 1543 delegate2_.set_max_size(gfx::Size(101, 0)); | 1554 delegate2_.set_max_size(gfx::Size(101, 0)); |
| 1544 | 1555 |
| 1545 std::vector<aura::Window*> windows; | 1556 std::vector<aura::Window*> windows; |
| 1546 windows.push_back(window2_.get()); | 1557 windows.push_back(window2_.get()); |
| 1547 windows.push_back(window3_.get()); | 1558 windows.push_back(window3_.get()); |
| 1548 windows.push_back(window4_.get()); | 1559 windows.push_back(window4_.get()); |
| 1549 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1560 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1550 window_.get(), gfx::Point(), HTRIGHT, | 1561 window_.get(), gfx::Point(), HTRIGHT, |
| 1551 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1562 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1552 ASSERT_TRUE(resizer.get()); | 1563 ASSERT_TRUE(resizer.get()); |
| 1553 // Move it 51 to the left, which should contract w1 and expand w2-4. | 1564 // Move it 51 to the left, which should contract w1 and expand w2-4. |
| 1554 // w2 will hit its max size straight away, and in doing so will leave extra | 1565 // w2 will hit its max size straight away, and in doing so will leave extra |
| 1555 // pixels that a naive implementation may award to the rightmost window. A | 1566 // pixels that a naive implementation may award to the rightmost window. A |
| 1556 // fair implementation will give 25 pixels to each of the other windows. | 1567 // fair implementation will give 25 pixels to each of the other windows. |
| 1557 resizer->Drag(CalculateDragPoint(*resizer, -51, 0), 0); | 1568 resizer->Drag(CalculateDragPoint(*resizer, -51, 0), 0); |
| 1558 EXPECT_EQ("100,100 49x100", window_->bounds().ToString()); | 1569 EXPECT_EQ("100,100 49x100", window_->bounds().ToString()); |
| 1559 EXPECT_EQ("149,100 101x100", window2_->bounds().ToString()); | 1570 EXPECT_EQ("149,100 101x100", window2_->bounds().ToString()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1571 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); | 1582 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); |
| 1572 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); | 1583 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); |
| 1573 window4_->SetBounds(gfx::Rect(400, 100, 100, 100)); | 1584 window4_->SetBounds(gfx::Rect(400, 100, 100, 100)); |
| 1574 delegate2_.set_max_size(gfx::Size(101, 0)); | 1585 delegate2_.set_max_size(gfx::Size(101, 0)); |
| 1575 delegate3_.set_max_size(gfx::Size(101, 0)); | 1586 delegate3_.set_max_size(gfx::Size(101, 0)); |
| 1576 | 1587 |
| 1577 std::vector<aura::Window*> windows; | 1588 std::vector<aura::Window*> windows; |
| 1578 windows.push_back(window2_.get()); | 1589 windows.push_back(window2_.get()); |
| 1579 windows.push_back(window3_.get()); | 1590 windows.push_back(window3_.get()); |
| 1580 windows.push_back(window4_.get()); | 1591 windows.push_back(window4_.get()); |
| 1581 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1592 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1582 window_.get(), gfx::Point(), HTRIGHT, | 1593 window_.get(), gfx::Point(), HTRIGHT, |
| 1583 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1594 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1584 ASSERT_TRUE(resizer.get()); | 1595 ASSERT_TRUE(resizer.get()); |
| 1585 // Move it 52 to the left, which should contract w1 and expand w2-4. | 1596 // Move it 52 to the left, which should contract w1 and expand w2-4. |
| 1586 resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0); | 1597 resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0); |
| 1587 EXPECT_EQ("100,100 48x100", window_->bounds().ToString()); | 1598 EXPECT_EQ("100,100 48x100", window_->bounds().ToString()); |
| 1588 EXPECT_EQ("148,100 101x100", window2_->bounds().ToString()); | 1599 EXPECT_EQ("148,100 101x100", window2_->bounds().ToString()); |
| 1589 EXPECT_EQ("249,100 101x100", window3_->bounds().ToString()); | 1600 EXPECT_EQ("249,100 101x100", window3_->bounds().ToString()); |
| 1590 EXPECT_EQ("350,100 150x100", window4_->bounds().ToString()); | 1601 EXPECT_EQ("350,100 150x100", window4_->bounds().ToString()); |
| 1591 } | 1602 } |
| 1592 | 1603 |
| 1593 TEST_F(WorkspaceWindowResizerTest, DontExceedMaxHeight) { | 1604 TEST_F(WorkspaceWindowResizerTest, DontExceedMaxHeight) { |
| 1594 UpdateDisplay("600x800"); | 1605 UpdateDisplay("600x800"); |
| 1595 aura::Window* root = Shell::GetPrimaryRootWindow(); | 1606 aura::Window* root = Shell::GetPrimaryRootWindow(); |
| 1596 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); | 1607 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); |
| 1597 | 1608 |
| 1598 // Four 100x100 windows flush against eachother, starting at 100,100. | 1609 // Four 100x100 windows flush against eachother, starting at 100,100. |
| 1599 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); | 1610 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); |
| 1600 window2_->SetBounds(gfx::Rect(100, 200, 100, 100)); | 1611 window2_->SetBounds(gfx::Rect(100, 200, 100, 100)); |
| 1601 window3_->SetBounds(gfx::Rect(100, 300, 100, 100)); | 1612 window3_->SetBounds(gfx::Rect(100, 300, 100, 100)); |
| 1602 window4_->SetBounds(gfx::Rect(100, 400, 100, 100)); | 1613 window4_->SetBounds(gfx::Rect(100, 400, 100, 100)); |
| 1603 delegate2_.set_max_size(gfx::Size(0, 101)); | 1614 delegate2_.set_max_size(gfx::Size(0, 101)); |
| 1604 delegate3_.set_max_size(gfx::Size(0, 101)); | 1615 delegate3_.set_max_size(gfx::Size(0, 101)); |
| 1605 | 1616 |
| 1606 std::vector<aura::Window*> windows; | 1617 std::vector<aura::Window*> windows; |
| 1607 windows.push_back(window2_.get()); | 1618 windows.push_back(window2_.get()); |
| 1608 windows.push_back(window3_.get()); | 1619 windows.push_back(window3_.get()); |
| 1609 windows.push_back(window4_.get()); | 1620 windows.push_back(window4_.get()); |
| 1610 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1621 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1611 window_.get(), gfx::Point(), HTBOTTOM, | 1622 window_.get(), gfx::Point(), HTBOTTOM, |
| 1612 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1623 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1613 ASSERT_TRUE(resizer.get()); | 1624 ASSERT_TRUE(resizer.get()); |
| 1614 // Move it 52 up, which should contract w1 and expand w2-4. | 1625 // Move it 52 up, which should contract w1 and expand w2-4. |
| 1615 resizer->Drag(CalculateDragPoint(*resizer, 0, -52), 0); | 1626 resizer->Drag(CalculateDragPoint(*resizer, 0, -52), 0); |
| 1616 EXPECT_EQ("100,100 100x48", window_->bounds().ToString()); | 1627 EXPECT_EQ("100,100 100x48", window_->bounds().ToString()); |
| 1617 EXPECT_EQ("100,148 100x101", window2_->bounds().ToString()); | 1628 EXPECT_EQ("100,148 100x101", window2_->bounds().ToString()); |
| 1618 EXPECT_EQ("100,249 100x101", window3_->bounds().ToString()); | 1629 EXPECT_EQ("100,249 100x101", window3_->bounds().ToString()); |
| 1619 EXPECT_EQ("100,350 100x150", window4_->bounds().ToString()); | 1630 EXPECT_EQ("100,350 100x150", window4_->bounds().ToString()); |
| 1620 } | 1631 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1636 window2_->SetBounds(gfx::Rect(100, 200, 100, 100)); | 1647 window2_->SetBounds(gfx::Rect(100, 200, 100, 100)); |
| 1637 window3_->SetBounds(gfx::Rect(100, 300, 100, 100)); | 1648 window3_->SetBounds(gfx::Rect(100, 300, 100, 100)); |
| 1638 window4_->SetBounds(gfx::Rect(100, 400, 100, 100)); | 1649 window4_->SetBounds(gfx::Rect(100, 400, 100, 100)); |
| 1639 delegate2_.set_min_size(gfx::Size(0, 99)); | 1650 delegate2_.set_min_size(gfx::Size(0, 99)); |
| 1640 delegate3_.set_min_size(gfx::Size(0, 99)); | 1651 delegate3_.set_min_size(gfx::Size(0, 99)); |
| 1641 | 1652 |
| 1642 std::vector<aura::Window*> windows; | 1653 std::vector<aura::Window*> windows; |
| 1643 windows.push_back(window2_.get()); | 1654 windows.push_back(window2_.get()); |
| 1644 windows.push_back(window3_.get()); | 1655 windows.push_back(window3_.get()); |
| 1645 windows.push_back(window4_.get()); | 1656 windows.push_back(window4_.get()); |
| 1646 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1657 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1647 window_.get(), gfx::Point(), HTBOTTOM, | 1658 window_.get(), gfx::Point(), HTBOTTOM, |
| 1648 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1659 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1649 ASSERT_TRUE(resizer.get()); | 1660 ASSERT_TRUE(resizer.get()); |
| 1650 // Move it 52 down, which should expand w1 and contract w2-4. | 1661 // Move it 52 down, which should expand w1 and contract w2-4. |
| 1651 resizer->Drag(CalculateDragPoint(*resizer, 0, 52), 0); | 1662 resizer->Drag(CalculateDragPoint(*resizer, 0, 52), 0); |
| 1652 EXPECT_EQ("100,100 100x152", window_->bounds().ToString()); | 1663 EXPECT_EQ("100,100 100x152", window_->bounds().ToString()); |
| 1653 EXPECT_EQ("100,252 100x99", window2_->bounds().ToString()); | 1664 EXPECT_EQ("100,252 100x99", window2_->bounds().ToString()); |
| 1654 EXPECT_EQ("100,351 100x99", window3_->bounds().ToString()); | 1665 EXPECT_EQ("100,351 100x99", window3_->bounds().ToString()); |
| 1655 EXPECT_EQ("100,450 100x50", window4_->bounds().ToString()); | 1666 EXPECT_EQ("100,450 100x50", window4_->bounds().ToString()); |
| 1656 } | 1667 } |
| 1657 | 1668 |
| 1658 TEST_F(WorkspaceWindowResizerTest, DontExpandRightmostPastMaxWidth) { | 1669 TEST_F(WorkspaceWindowResizerTest, DontExpandRightmostPastMaxWidth) { |
| 1659 UpdateDisplay("600x800"); | 1670 UpdateDisplay("600x800"); |
| 1660 aura::Window* root = Shell::GetPrimaryRootWindow(); | 1671 aura::Window* root = Shell::GetPrimaryRootWindow(); |
| 1661 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); | 1672 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); |
| 1662 | 1673 |
| 1663 // Three 100x100 windows flush against eachother, starting at 100,100. | 1674 // Three 100x100 windows flush against eachother, starting at 100,100. |
| 1664 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); | 1675 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); |
| 1665 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); | 1676 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); |
| 1666 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); | 1677 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); |
| 1667 delegate3_.set_max_size(gfx::Size(101, 0)); | 1678 delegate3_.set_max_size(gfx::Size(101, 0)); |
| 1668 | 1679 |
| 1669 std::vector<aura::Window*> windows; | 1680 std::vector<aura::Window*> windows; |
| 1670 windows.push_back(window2_.get()); | 1681 windows.push_back(window2_.get()); |
| 1671 windows.push_back(window3_.get()); | 1682 windows.push_back(window3_.get()); |
| 1672 windows.push_back(window4_.get()); | 1683 windows.push_back(window4_.get()); |
| 1673 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1684 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1674 window_.get(), gfx::Point(), HTRIGHT, | 1685 window_.get(), gfx::Point(), HTRIGHT, |
| 1675 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1686 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1676 ASSERT_TRUE(resizer.get()); | 1687 ASSERT_TRUE(resizer.get()); |
| 1677 // Move it 51 to the left, which should contract w1 and expand w2-3. | 1688 // Move it 51 to the left, which should contract w1 and expand w2-3. |
| 1678 resizer->Drag(CalculateDragPoint(*resizer, -51, 0), 0); | 1689 resizer->Drag(CalculateDragPoint(*resizer, -51, 0), 0); |
| 1679 EXPECT_EQ("100,100 49x100", window_->bounds().ToString()); | 1690 EXPECT_EQ("100,100 49x100", window_->bounds().ToString()); |
| 1680 EXPECT_EQ("149,100 150x100", window2_->bounds().ToString()); | 1691 EXPECT_EQ("149,100 150x100", window2_->bounds().ToString()); |
| 1681 EXPECT_EQ("299,100 101x100", window3_->bounds().ToString()); | 1692 EXPECT_EQ("299,100 101x100", window3_->bounds().ToString()); |
| 1682 } | 1693 } |
| 1683 | 1694 |
| 1684 TEST_F(WorkspaceWindowResizerTest, MoveAttachedWhenGrownToMaxSize) { | 1695 TEST_F(WorkspaceWindowResizerTest, MoveAttachedWhenGrownToMaxSize) { |
| 1685 UpdateDisplay("600x800"); | 1696 UpdateDisplay("600x800"); |
| 1686 aura::Window* root = Shell::GetPrimaryRootWindow(); | 1697 aura::Window* root = Shell::GetPrimaryRootWindow(); |
| 1687 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); | 1698 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); |
| 1688 | 1699 |
| 1689 // Three 100x100 windows flush against eachother, starting at 100,100. | 1700 // Three 100x100 windows flush against eachother, starting at 100,100. |
| 1690 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); | 1701 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); |
| 1691 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); | 1702 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); |
| 1692 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); | 1703 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); |
| 1693 delegate2_.set_max_size(gfx::Size(101, 0)); | 1704 delegate2_.set_max_size(gfx::Size(101, 0)); |
| 1694 delegate3_.set_max_size(gfx::Size(101, 0)); | 1705 delegate3_.set_max_size(gfx::Size(101, 0)); |
| 1695 | 1706 |
| 1696 std::vector<aura::Window*> windows; | 1707 std::vector<aura::Window*> windows; |
| 1697 windows.push_back(window2_.get()); | 1708 windows.push_back(window2_.get()); |
| 1698 windows.push_back(window3_.get()); | 1709 windows.push_back(window3_.get()); |
| 1699 windows.push_back(window4_.get()); | 1710 windows.push_back(window4_.get()); |
| 1700 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1711 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1701 window_.get(), gfx::Point(), HTRIGHT, | 1712 window_.get(), gfx::Point(), HTRIGHT, |
| 1702 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1713 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1703 ASSERT_TRUE(resizer.get()); | 1714 ASSERT_TRUE(resizer.get()); |
| 1704 // Move it 52 to the left, which should contract w1 and expand and move w2-3. | 1715 // Move it 52 to the left, which should contract w1 and expand and move w2-3. |
| 1705 resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0); | 1716 resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0); |
| 1706 EXPECT_EQ("100,100 48x100", window_->bounds().ToString()); | 1717 EXPECT_EQ("100,100 48x100", window_->bounds().ToString()); |
| 1707 EXPECT_EQ("148,100 101x100", window2_->bounds().ToString()); | 1718 EXPECT_EQ("148,100 101x100", window2_->bounds().ToString()); |
| 1708 EXPECT_EQ("249,100 101x100", window3_->bounds().ToString()); | 1719 EXPECT_EQ("249,100 101x100", window3_->bounds().ToString()); |
| 1709 } | 1720 } |
| 1710 | 1721 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1723 // Three 100x100 windows flush against eachother, starting at 100,100. | 1734 // Three 100x100 windows flush against eachother, starting at 100,100. |
| 1724 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); | 1735 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); |
| 1725 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); | 1736 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); |
| 1726 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); | 1737 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); |
| 1727 delegate_.set_max_size(gfx::Size(102, 0)); | 1738 delegate_.set_max_size(gfx::Size(102, 0)); |
| 1728 | 1739 |
| 1729 std::vector<aura::Window*> windows; | 1740 std::vector<aura::Window*> windows; |
| 1730 windows.push_back(window2_.get()); | 1741 windows.push_back(window2_.get()); |
| 1731 windows.push_back(window3_.get()); | 1742 windows.push_back(window3_.get()); |
| 1732 windows.push_back(window4_.get()); | 1743 windows.push_back(window4_.get()); |
| 1733 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1744 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1734 window_.get(), gfx::Point(), HTRIGHT, | 1745 window_.get(), gfx::Point(), HTRIGHT, |
| 1735 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1746 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1736 ASSERT_TRUE(resizer.get()); | 1747 ASSERT_TRUE(resizer.get()); |
| 1737 // Move it 50 to the right, which should expand w1 and contract w2-3, as they | 1748 // Move it 50 to the right, which should expand w1 and contract w2-3, as they |
| 1738 // won't fit in the root window in their original sizes. | 1749 // won't fit in the root window in their original sizes. |
| 1739 resizer->Drag(CalculateDragPoint(*resizer, 50, 0), 0); | 1750 resizer->Drag(CalculateDragPoint(*resizer, 50, 0), 0); |
| 1740 EXPECT_EQ("100,100 102x100", window_->bounds().ToString()); | 1751 EXPECT_EQ("100,100 102x100", window_->bounds().ToString()); |
| 1741 EXPECT_EQ("202,100 99x100", window2_->bounds().ToString()); | 1752 EXPECT_EQ("202,100 99x100", window2_->bounds().ToString()); |
| 1742 EXPECT_EQ("301,100 99x100", window3_->bounds().ToString()); | 1753 EXPECT_EQ("301,100 99x100", window3_->bounds().ToString()); |
| 1743 } | 1754 } |
| 1744 | 1755 |
| 1745 TEST_F(WorkspaceWindowResizerTest, MainWindowHonoursMinWidth) { | 1756 TEST_F(WorkspaceWindowResizerTest, MainWindowHonoursMinWidth) { |
| 1746 UpdateDisplay("400x800"); | 1757 UpdateDisplay("400x800"); |
| 1747 aura::Window* root = Shell::GetPrimaryRootWindow(); | 1758 aura::Window* root = Shell::GetPrimaryRootWindow(); |
| 1748 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); | 1759 Shell::GetInstance()->SetDisplayWorkAreaInsets(root, gfx::Insets()); |
| 1749 | 1760 |
| 1750 // Three 100x100 windows flush against eachother, starting at 100,100. | 1761 // Three 100x100 windows flush against eachother, starting at 100,100. |
| 1751 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); | 1762 window_->SetBounds(gfx::Rect( 100, 100, 100, 100)); |
| 1752 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); | 1763 window2_->SetBounds(gfx::Rect(200, 100, 100, 100)); |
| 1753 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); | 1764 window3_->SetBounds(gfx::Rect(300, 100, 100, 100)); |
| 1754 delegate_.set_min_size(gfx::Size(98, 0)); | 1765 delegate_.set_min_size(gfx::Size(98, 0)); |
| 1755 | 1766 |
| 1756 std::vector<aura::Window*> windows; | 1767 std::vector<aura::Window*> windows; |
| 1757 windows.push_back(window2_.get()); | 1768 windows.push_back(window2_.get()); |
| 1758 windows.push_back(window3_.get()); | 1769 windows.push_back(window3_.get()); |
| 1759 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( | 1770 scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest( |
| 1760 window_.get(), gfx::Point(), HTRIGHT, | 1771 window_.get(), gfx::Point(), HTRIGHT, |
| 1761 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); | 1772 aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows)); |
| 1762 ASSERT_TRUE(resizer.get()); | 1773 ASSERT_TRUE(resizer.get()); |
| 1763 // Move it 50 to the left, which should contract w1 and expand w2-3. | 1774 // Move it 50 to the left, which should contract w1 and expand w2-3. |
| 1764 resizer->Drag(CalculateDragPoint(*resizer, -50, 0), 0); | 1775 resizer->Drag(CalculateDragPoint(*resizer, -50, 0), 0); |
| 1765 EXPECT_EQ("100,100 98x100", window_->bounds().ToString()); | 1776 EXPECT_EQ("100,100 98x100", window_->bounds().ToString()); |
| 1766 EXPECT_EQ("198,100 101x100", window2_->bounds().ToString()); | 1777 EXPECT_EQ("198,100 101x100", window2_->bounds().ToString()); |
| 1767 EXPECT_EQ("299,100 101x100", window3_->bounds().ToString()); | 1778 EXPECT_EQ("299,100 101x100", window3_->bounds().ToString()); |
| 1768 } | 1779 } |
| 1769 | 1780 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2006 RunAnimationTillComplete(phantom_controller->animation_.get()); | 2017 RunAnimationTillComplete(phantom_controller->animation_.get()); |
| 2007 | 2018 |
| 2008 // Hide phantom controller. Both widgets should close. | 2019 // Hide phantom controller. Both widgets should close. |
| 2009 phantom_controller->Hide(); | 2020 phantom_controller->Hide(); |
| 2010 EXPECT_FALSE(phantom_controller->phantom_widget_); | 2021 EXPECT_FALSE(phantom_controller->phantom_widget_); |
| 2011 EXPECT_FALSE(phantom_controller->phantom_widget_start_); | 2022 EXPECT_FALSE(phantom_controller->phantom_widget_start_); |
| 2012 } | 2023 } |
| 2013 | 2024 |
| 2014 } // namespace internal | 2025 } // namespace internal |
| 2015 } // namespace ash | 2026 } // namespace ash |
| OLD | NEW |