Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Side by Side Diff: ash/wm/window_manager_unittest.cc

Issue 2809073002: cros: allow aura window not considered activatable for pointer event (Closed)
Patch Set: const ui::Event* Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/public/cpp/config.h" 5 #include "ash/public/cpp/config.h"
6 #include "ash/public/cpp/shell_window_ids.h" 6 #include "ash/public/cpp/shell_window_ids.h"
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "ash/test/test_activation_delegate.h" 9 #include "ash/test/test_activation_delegate.h"
10 #include "ash/wm/window_util.h" 10 #include "ash/wm/window_util.h"
11 #include "ui/aura/client/aura_constants.h"
11 #include "ui/aura/client/cursor_client_observer.h" 12 #include "ui/aura/client/cursor_client_observer.h"
12 #include "ui/aura/client/focus_client.h" 13 #include "ui/aura/client/focus_client.h"
13 #include "ui/aura/env.h" 14 #include "ui/aura/env.h"
14 #include "ui/aura/test/aura_test_base.h" 15 #include "ui/aura/test/aura_test_base.h"
15 #include "ui/aura/test/test_window_delegate.h" 16 #include "ui/aura/test/test_window_delegate.h"
16 #include "ui/aura/test/test_windows.h" 17 #include "ui/aura/test/test_windows.h"
17 #include "ui/base/cursor/cursor.h" 18 #include "ui/base/cursor/cursor.h"
18 #include "ui/base/hit_test.h" 19 #include "ui/base/hit_test.h"
19 #include "ui/display/screen.h" 20 #include "ui/display/screen.h"
20 #include "ui/events/event.h" 21 #include "ui/events/event.h"
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 EXPECT_EQ(w2.get(), focus_client->GetFocusedWindow()); 343 EXPECT_EQ(w2.get(), focus_client->GetFocusedWindow());
343 EXPECT_FALSE(w11->CanFocus()); 344 EXPECT_FALSE(w11->CanFocus());
344 345
345 // Click on |w11|. This should focus w1. 346 // Click on |w11|. This should focus w1.
346 generator.MoveMouseToCenterOf(w11.get()); 347 generator.MoveMouseToCenterOf(w11.get());
347 generator.ClickLeftButton(); 348 generator.ClickLeftButton();
348 EXPECT_EQ(w1.get(), focus_client->GetFocusedWindow()); 349 EXPECT_EQ(w1.get(), focus_client->GetFocusedWindow());
349 } 350 }
350 } 351 }
351 352
353 // Tests that Set window property |kActivateOnPointerKey| to false could
354 // properly ignore pointer window activation.
355 TEST_F(WindowManagerTest, ActivateOnPointerWindowProperty) {
356 // Create two test windows, window1 and window2.
357 aura::test::TestWindowDelegate wd;
358 std::unique_ptr<aura::Window> w1(
359 CreateTestWindowInShellWithDelegate(&wd, -1, gfx::Rect(10, 10, 50, 50)));
360 std::unique_ptr<aura::Window> w2(
361 CreateTestWindowInShellWithDelegate(&wd, -2, gfx::Rect(70, 70, 50, 50)));
362
363 // Activate window1.
364 wm::ActivateWindow(w1.get());
365 EXPECT_TRUE(wm::IsActiveWindow(w1.get()));
366 EXPECT_FALSE(wm::IsActiveWindow(w2.get()));
367
368 // Set window2 not pointer activatable.
369 w2->SetProperty(aura::client::kActivateOnPointerKey, false);
370 // Mouse click on window2.
371 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), w2.get());
372 generator.ClickLeftButton();
373 // Window2 should not become active.
374 EXPECT_FALSE(wm::IsActiveWindow(w2.get()));
375 EXPECT_TRUE(wm::IsActiveWindow(w1.get()));
376
377 // Gesture a tap at window2.
378 generator.GestureTapAt(w2->bounds().CenterPoint());
379 // Window2 should not become active.
380 EXPECT_FALSE(wm::IsActiveWindow(w2.get()));
381 EXPECT_TRUE(wm::IsActiveWindow(w1.get()));
382
383 // Set window2 now pointer activatable.
384 w2->SetProperty(aura::client::kActivateOnPointerKey, true);
385 // Mouse click on window2.
386 generator.ClickLeftButton();
387 // Window2 should become active.
388 EXPECT_TRUE(wm::IsActiveWindow(w2.get()));
389 EXPECT_FALSE(wm::IsActiveWindow(w1.get()));
390 }
391
352 TEST_F(WindowManagerTest, PanelActivation) { 392 TEST_F(WindowManagerTest, PanelActivation) {
353 aura::test::TestWindowDelegate wd; 393 aura::test::TestWindowDelegate wd;
354 std::unique_ptr<aura::Window> w1( 394 std::unique_ptr<aura::Window> w1(
355 CreateTestWindowInShellWithDelegate(&wd, -1, gfx::Rect(10, 10, 50, 50))); 395 CreateTestWindowInShellWithDelegate(&wd, -1, gfx::Rect(10, 10, 50, 50)));
356 aura::test::TestWindowDelegate pd; 396 aura::test::TestWindowDelegate pd;
357 std::unique_ptr<aura::Window> p1(CreateTestWindowInShellWithDelegateAndType( 397 std::unique_ptr<aura::Window> p1(CreateTestWindowInShellWithDelegateAndType(
358 &pd, ui::wm::WINDOW_TYPE_PANEL, -1, gfx::Rect(10, 10, 50, 50))); 398 &pd, ui::wm::WINDOW_TYPE_PANEL, -1, gfx::Rect(10, 10, 50, 50)));
359 aura::client::FocusClient* focus_client = 399 aura::client::FocusClient* focus_client =
360 aura::client::GetFocusClient(w1.get()); 400 aura::client::GetFocusClient(w1.get());
361 401
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 observer_b.reset(); 893 observer_b.reset();
854 generator.MoveMouseTo(50, 50); 894 generator.MoveMouseTo(50, 50);
855 EXPECT_TRUE(observer_a.did_visibility_change()); 895 EXPECT_TRUE(observer_a.did_visibility_change());
856 EXPECT_FALSE(observer_b.did_visibility_change()); 896 EXPECT_FALSE(observer_b.did_visibility_change());
857 EXPECT_TRUE(observer_a.is_cursor_visible()); 897 EXPECT_TRUE(observer_a.is_cursor_visible());
858 898
859 cursor_manager->RemoveObserver(&observer_a); 899 cursor_manager->RemoveObserver(&observer_a);
860 } 900 }
861 901
862 } // namespace ash 902 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698