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

Unified Diff: services/ui/ws/event_dispatcher_unittest.cc

Issue 2125883003: Adds ability for pre-target accelerators to not consume events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/ws/event_dispatcher_delegate.h ('k') | services/ui/ws/test_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/event_dispatcher_unittest.cc
diff --git a/services/ui/ws/event_dispatcher_unittest.cc b/services/ui/ws/event_dispatcher_unittest.cc
index ea220685098ca3bb4dc117fe70b669a9a0156202..066aaaec99a4ead2b093bffbe802a0045aa381b1 100644
--- a/services/ui/ws/event_dispatcher_unittest.cc
+++ b/services/ui/ws/event_dispatcher_unittest.cc
@@ -67,9 +67,14 @@ class TestEventDispatcherDelegate : public EventDispatcherDelegate {
uint32_t GetAndClearLastAccelerator() {
uint32_t return_value = last_accelerator_;
last_accelerator_ = 0;
+ last_accelerator_phase_ = AcceleratorPhase::POST;
return return_value;
}
+ AcceleratorPhase last_accelerator_phase() const {
+ return last_accelerator_phase_;
+ }
+
void set_root(ServerWindow* root) { root_ = root; }
// Returns the last dispatched event, or null if there are no more.
@@ -100,9 +105,12 @@ class TestEventDispatcherDelegate : public EventDispatcherDelegate {
private:
// EventDispatcherDelegate:
- void OnAccelerator(uint32_t accelerator, const ui::Event& event) override {
+ void OnAccelerator(uint32_t accelerator,
+ const ui::Event& event,
+ AcceleratorPhase phase) override {
EXPECT_EQ(0u, last_accelerator_);
last_accelerator_ = accelerator;
+ last_accelerator_phase_ = phase;
}
ServerWindow* GetFocusedWindowForEventDispatcher() override {
return focused_window_;
@@ -142,6 +150,7 @@ class TestEventDispatcherDelegate : public EventDispatcherDelegate {
ServerWindow* focused_window_;
ServerWindow* lost_capture_window_;
uint32_t last_accelerator_;
+ AcceleratorPhase last_accelerator_phase_ = AcceleratorPhase::POST;
std::queue<std::unique_ptr<DispatchedEventDetails>> dispatched_event_queue_;
ServerWindow* root_ = nullptr;
std::unique_ptr<ui::Event> last_event_target_not_found_;
@@ -190,9 +199,11 @@ void RunMouseEventTests(EventDispatcher* dispatcher,
ASSERT_FALSE(dispatcher_delegate->has_queued_events())
<< " unexpected queued events before running " << i;
if (test.input_event.IsMouseWheelEvent())
- dispatcher->ProcessEvent(test.input_event);
+ dispatcher->ProcessEvent(test.input_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
else
- dispatcher->ProcessEvent(ui::PointerEvent(test.input_event));
+ dispatcher->ProcessEvent(ui::PointerEvent(test.input_event),
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
@@ -331,7 +342,8 @@ TEST_F(EventDispatcherTest, ProcessEvent) {
const ui::PointerEvent ui_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(20, 25), gfx::Point(20, 25),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(ui_event);
+ event_dispatcher()->ProcessEvent(ui_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -349,7 +361,8 @@ TEST_F(EventDispatcherTest, ProcessEvent) {
TEST_F(EventDispatcherTest, ProcessEventNoTarget) {
// Send event without a target.
ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
- event_dispatcher()->ProcessEvent(key);
+ event_dispatcher()->ProcessEvent(key,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Event wasn't dispatched to a target.
std::unique_ptr<DispatchedEventDetails> details =
@@ -413,7 +426,7 @@ TEST_F(EventDispatcherTest, EventMatching) {
dispatcher->AddAccelerator(accelerator_1, std::move(matcher));
ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_W, ui::EF_CONTROL_DOWN);
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(accelerator_1,
event_dispatcher_delegate->GetAndClearLastAccelerator());
@@ -421,24 +434,24 @@ TEST_F(EventDispatcherTest, EventMatching) {
// ignoring.
key = ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_W,
ui::EF_CONTROL_DOWN | ui::EF_NUM_LOCK_ON);
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(accelerator_1,
event_dispatcher_delegate->GetAndClearLastAccelerator());
key = ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_W, ui::EF_NONE);
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(0u, event_dispatcher_delegate->GetAndClearLastAccelerator());
uint32_t accelerator_2 = 2;
matcher = ui::CreateKeyMatcher(ui::mojom::KeyboardCode::W,
ui::mojom::kEventFlagNone);
dispatcher->AddAccelerator(accelerator_2, std::move(matcher));
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(accelerator_2,
event_dispatcher_delegate->GetAndClearLastAccelerator());
dispatcher->RemoveAccelerator(accelerator_2);
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(0u, event_dispatcher_delegate->GetAndClearLastAccelerator());
}
@@ -456,7 +469,7 @@ TEST_F(EventDispatcherTest, PostTargetAccelerator) {
ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_W, ui::EF_CONTROL_DOWN);
// The post-target accelerator should be fired if there is no focused window.
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(accelerator_1,
event_dispatcher_delegate->GetAndClearLastAccelerator());
std::unique_ptr<DispatchedEventDetails> details =
@@ -468,7 +481,7 @@ TEST_F(EventDispatcherTest, PostTargetAccelerator) {
event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
// With a focused window the event should be dispatched.
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(0u, event_dispatcher_delegate->GetAndClearLastAccelerator());
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(details);
@@ -480,13 +493,57 @@ TEST_F(EventDispatcherTest, PostTargetAccelerator) {
EXPECT_FALSE(accelerator_weak_ptr);
// Post deletion there should be no accelerator
- dispatcher->ProcessEvent(key);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
EXPECT_EQ(0u, event_dispatcher_delegate->GetAndClearLastAccelerator());
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(details);
EXPECT_FALSE(details->accelerator);
}
+TEST_F(EventDispatcherTest, ProcessPost) {
+ TestEventDispatcherDelegate* event_dispatcher_delegate =
+ test_event_dispatcher_delegate();
+ EventDispatcher* dispatcher = event_dispatcher();
+
+ uint32_t pre_id = 1;
+ {
+ mojom::EventMatcherPtr matcher = ui::CreateKeyMatcher(
+ ui::mojom::KeyboardCode::W, ui::mojom::kEventFlagControlDown);
+ matcher->accelerator_phase = ui::mojom::AcceleratorPhase::PRE_TARGET;
+ dispatcher->AddAccelerator(pre_id, std::move(matcher));
+ }
+
+ uint32_t post_id = 2;
+ {
+ mojom::EventMatcherPtr matcher = ui::CreateKeyMatcher(
+ ui::mojom::KeyboardCode::W, ui::mojom::kEventFlagControlDown);
+ matcher->accelerator_phase = ui::mojom::AcceleratorPhase::POST_TARGET;
+ dispatcher->AddAccelerator(post_id, std::move(matcher));
+ }
+
+ // Set focused window for EventDispatcher dispatches key events.
+ std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+ event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
+
+ // Dispatch for ANY, which should trigger PRE and not call
+ // DispatchInputEventToWindow().
+ ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_W, ui::EF_CONTROL_DOWN);
+ dispatcher->ProcessEvent(key, EventDispatcher::AcceleratorMatchPhase::ANY);
+ EXPECT_EQ(EventDispatcherDelegate::AcceleratorPhase::PRE,
+ event_dispatcher_delegate->last_accelerator_phase());
+ EXPECT_EQ(pre_id, event_dispatcher_delegate->GetAndClearLastAccelerator());
+ EXPECT_FALSE(event_dispatcher_delegate->has_queued_events());
+
+ // Dispatch for POST, which should trigger POST.
+ dispatcher->ProcessEvent(key,
+ EventDispatcher::AcceleratorMatchPhase::POST_ONLY);
+ std::unique_ptr<DispatchedEventDetails> details =
+ event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
+ ASSERT_TRUE(details);
+ ASSERT_TRUE(details->accelerator);
+ EXPECT_EQ(post_id, details->accelerator->id());
+}
+
TEST_F(EventDispatcherTest, Capture) {
ServerWindow* root = root_window();
std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
@@ -589,7 +646,8 @@ TEST_F(EventDispatcherTest, ClientAreaGoesToOwner) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(12, 12), gfx::Point(12, 12),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(press_event);
+ dispatcher->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Events should target child and be in the non-client area.
std::unique_ptr<DispatchedEventDetails> details =
@@ -603,7 +661,8 @@ TEST_F(EventDispatcherTest, ClientAreaGoesToOwner) {
const ui::PointerEvent move_event(
ui::MouseEvent(ui::ET_MOUSE_MOVED, gfx::Point(17, 18), gfx::Point(17, 18),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, 0));
- dispatcher->ProcessEvent(move_event);
+ dispatcher->ProcessEvent(move_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Still same target.
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
@@ -615,7 +674,8 @@ TEST_F(EventDispatcherTest, ClientAreaGoesToOwner) {
const ui::PointerEvent release_event(ui::MouseEvent(
ui::ET_MOUSE_RELEASED, gfx::Point(17, 18), gfx::Point(17, 18),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(release_event);
+ dispatcher->ProcessEvent(release_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// The event should not have been dispatched to the delegate.
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
@@ -628,7 +688,8 @@ TEST_F(EventDispatcherTest, ClientAreaGoesToOwner) {
const ui::PointerEvent press_event2(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(21, 22), gfx::Point(21, 22),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(press_event2);
+ dispatcher->ProcessEvent(press_event2,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(event_dispatcher_delegate->has_queued_events());
ASSERT_EQ(child.get(), details->window);
@@ -658,7 +719,8 @@ TEST_F(EventDispatcherTest, AdditionalClientArea) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(28, 11), gfx::Point(28, 11),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(press_event);
+ event_dispatcher()->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Events should target child and be in the client area.
std::unique_ptr<DispatchedEventDetails> details =
@@ -679,7 +741,8 @@ TEST_F(EventDispatcherTest, HitTestMask) {
const ui::PointerEvent move1(ui::MouseEvent(
ui::ET_MOUSE_MOVED, gfx::Point(11, 11), gfx::Point(11, 11),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, 0));
- event_dispatcher()->ProcessEvent(move1);
+ event_dispatcher()->ProcessEvent(move1,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Event went through the child window and hit the root.
std::unique_ptr<DispatchedEventDetails> details1 =
@@ -693,7 +756,8 @@ TEST_F(EventDispatcherTest, HitTestMask) {
const ui::PointerEvent move2(ui::MouseEvent(
ui::ET_MOUSE_MOVED, gfx::Point(11, 12), gfx::Point(11, 12),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, 0));
- event_dispatcher()->ProcessEvent(move2);
+ event_dispatcher()->ProcessEvent(move2,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Mouse exits the root.
std::unique_ptr<DispatchedEventDetails> details2 =
@@ -723,7 +787,8 @@ TEST_F(EventDispatcherTest, DontFocusOnSecondDown) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(12, 12), gfx::Point(12, 12),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(press_event);
+ dispatcher->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_FALSE(event_dispatcher_delegate->has_queued_events());
@@ -735,7 +800,8 @@ TEST_F(EventDispatcherTest, DontFocusOnSecondDown) {
// but focus should not change.
const ui::PointerEvent touch_event(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(53, 54), 2, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event);
+ dispatcher->ProcessEvent(touch_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_FALSE(event_dispatcher_delegate->has_queued_events());
EXPECT_EQ(child2.get(), details->window);
@@ -757,7 +823,8 @@ TEST_F(EventDispatcherTest, TwoPointersActive) {
// Press on child1.
const ui::PointerEvent touch_event1(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(12, 13), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event1);
+ dispatcher->ProcessEvent(touch_event1,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child1.get(), details->window);
@@ -765,38 +832,44 @@ TEST_F(EventDispatcherTest, TwoPointersActive) {
// Drag over child2, child1 should get the drag.
const ui::PointerEvent drag_event1(ui::TouchEvent(
ui::ET_TOUCH_MOVED, gfx::Point(53, 54), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(drag_event1);
+ dispatcher->ProcessEvent(drag_event1,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child1.get(), details->window);
// Press on child2 with a different touch id.
const ui::PointerEvent touch_event2(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(54, 55), 2, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event2);
+ dispatcher->ProcessEvent(touch_event2,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child2.get(), details->window);
// Drag over child1 with id 2, child2 should continue to get the drag.
const ui::PointerEvent drag_event2(ui::TouchEvent(
ui::ET_TOUCH_MOVED, gfx::Point(13, 14), 2, base::TimeTicks()));
- dispatcher->ProcessEvent(drag_event2);
+ dispatcher->ProcessEvent(drag_event2,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child2.get(), details->window);
// Drag again with id 1, child1 should continue to get it.
- dispatcher->ProcessEvent(drag_event1);
+ dispatcher->ProcessEvent(drag_event1,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child1.get(), details->window);
// Release touch id 1, and click on 2. 2 should get it.
const ui::PointerEvent touch_release(ui::TouchEvent(
ui::ET_TOUCH_RELEASED, gfx::Point(54, 55), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_release);
+ dispatcher->ProcessEvent(touch_release,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child1.get(), details->window);
const ui::PointerEvent touch_event3(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(54, 55), 2, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event3);
+ dispatcher->ProcessEvent(touch_event3,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(child2.get(), details->window);
}
@@ -814,7 +887,8 @@ TEST_F(EventDispatcherTest, DestroyWindowWhileGettingEvents) {
// Press on child.
const ui::PointerEvent touch_event1(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(12, 13), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event1);
+ dispatcher->ProcessEvent(touch_event1,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_FALSE(event_dispatcher_delegate->has_queued_events());
@@ -825,7 +899,8 @@ TEST_F(EventDispatcherTest, DestroyWindowWhileGettingEvents) {
const ui::PointerEvent drag_event1(ui::TouchEvent(
ui::ET_TOUCH_MOVED, gfx::Point(53, 54), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(drag_event1);
+ dispatcher->ProcessEvent(drag_event1,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(nullptr, details.get());
}
@@ -845,7 +920,8 @@ TEST_F(EventDispatcherTest, MouseInExtendedHitTestRegion) {
const ui::PointerEvent ui_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(8, 9), gfx::Point(8, 9),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(ui_event);
+ dispatcher->ProcessEvent(ui_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
ASSERT_EQ(root, details->window);
@@ -854,7 +930,8 @@ TEST_F(EventDispatcherTest, MouseInExtendedHitTestRegion) {
const ui::PointerEvent release_event(ui::MouseEvent(
ui::ET_MOUSE_RELEASED, gfx::Point(8, 9), gfx::Point(8, 9),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(release_event);
+ dispatcher->ProcessEvent(release_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_FALSE(event_dispatcher_delegate->has_queued_events());
ASSERT_EQ(root, details->window);
@@ -863,7 +940,8 @@ TEST_F(EventDispatcherTest, MouseInExtendedHitTestRegion) {
// Change the extended hit test region and send event in extended hit test
// region. Should result in exit for root, followed by press for child.
child->set_extended_hit_test_region(gfx::Insets(5, 5, 5, 5));
- dispatcher->ProcessEvent(ui_event);
+ dispatcher->ProcessEvent(ui_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_EQ(root, details->window);
EXPECT_EQ(ui::ET_POINTER_EXITED, details->event->type());
@@ -928,7 +1006,8 @@ TEST_F(EventDispatcherTest, SetExplicitCapture) {
const ui::PointerEvent left_press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(5, 5), gfx::Point(5, 5),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(left_press_event);
+ dispatcher->ProcessEvent(left_press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Events should target child.
std::unique_ptr<DispatchedEventDetails> details =
@@ -944,7 +1023,8 @@ TEST_F(EventDispatcherTest, SetExplicitCapture) {
ui::ET_MOUSE_PRESSED, gfx::Point(5, 5), gfx::Point(5, 5),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON | ui::EF_RIGHT_MOUSE_BUTTON,
ui::EF_RIGHT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(right_press_event);
+ dispatcher->ProcessEvent(right_press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(IsMouseButtonDown());
@@ -953,14 +1033,16 @@ TEST_F(EventDispatcherTest, SetExplicitCapture) {
ui::ET_MOUSE_RELEASED, gfx::Point(5, 5), gfx::Point(5, 5),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON | ui::EF_RIGHT_MOUSE_BUTTON,
ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(left_release_event);
+ dispatcher->ProcessEvent(left_release_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(IsMouseButtonDown());
// Touch Event while mouse is down should not affect state.
const ui::PointerEvent touch_event(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(15, 15), 2, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event);
+ dispatcher->ProcessEvent(touch_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(IsMouseButtonDown());
@@ -969,7 +1051,8 @@ TEST_F(EventDispatcherTest, SetExplicitCapture) {
ui::MouseEvent(ui::ET_MOUSE_MOVED, gfx::Point(15, 5), gfx::Point(15, 5),
base::TimeTicks(), ui::EF_RIGHT_MOUSE_BUTTON,
ui::EF_RIGHT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(move_event);
+ dispatcher->ProcessEvent(move_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_TRUE(IsMouseButtonDown());
@@ -978,7 +1061,8 @@ TEST_F(EventDispatcherTest, SetExplicitCapture) {
ui::MouseEvent(ui::ET_MOUSE_RELEASED, gfx::Point(5, 5),
gfx::Point(5, 5), base::TimeTicks(),
ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(right_release_event);
+ dispatcher->ProcessEvent(right_release_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
EXPECT_FALSE(IsMouseButtonDown());
}
@@ -989,7 +1073,8 @@ TEST_F(EventDispatcherTest, SetExplicitCapture) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(5, 5), gfx::Point(5, 5),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(press_event);
+ dispatcher->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Events should target the root.
std::unique_ptr<DispatchedEventDetails> details =
@@ -1047,7 +1132,8 @@ TEST_F(EventDispatcherTest, ExplicitCaptureOverridesImplicitCapture) {
{
const ui::PointerEvent touch_event(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(12, 13), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event);
+ dispatcher->ProcessEvent(touch_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
}
std::unique_ptr<DispatchedEventDetails> details =
@@ -1079,7 +1165,8 @@ TEST_F(EventDispatcherTest, ExplicitCaptureOverridesImplicitCapture) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(15, 15), gfx::Point(15, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(press_event);
+ dispatcher->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Events should target the root.
details = event_dispatcher_delegate->GetAndAdvanceDispatchedEventDetails();
@@ -1099,7 +1186,8 @@ TEST_F(EventDispatcherTest, CaptureUpdatesActivePointerTargets) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(5, 5), gfx::Point(5, 5),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- dispatcher->ProcessEvent(press_event);
+ dispatcher->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1109,7 +1197,8 @@ TEST_F(EventDispatcherTest, CaptureUpdatesActivePointerTargets) {
{
const ui::PointerEvent touch_event(ui::TouchEvent(
ui::ET_TOUCH_PRESSED, gfx::Point(12, 13), 1, base::TimeTicks()));
- dispatcher->ProcessEvent(touch_event);
+ dispatcher->ProcessEvent(touch_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
}
ASSERT_TRUE(AreAnyPointersDown());
@@ -1179,7 +1268,8 @@ TEST_F(EventDispatcherTest, CaptureInNonClientAreaOverridesActualPoint) {
const ui::PointerEvent press_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(6, 6), gfx::Point(6, 6),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(press_event);
+ event_dispatcher()->ProcessEvent(press_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
// Events should target child and be in the client area.
std::unique_ptr<DispatchedEventDetails> details =
@@ -1199,7 +1289,8 @@ TEST_F(EventDispatcherTest, ProcessPointerEvents) {
const ui::PointerEvent pointer_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(20, 25), gfx::Point(20, 25),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(pointer_event);
+ event_dispatcher()->ProcessEvent(
+ pointer_event, EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1219,7 +1310,8 @@ TEST_F(EventDispatcherTest, ProcessPointerEvents) {
const ui::PointerEvent pointer_event(
ui::TouchEvent(ui::ET_TOUCH_RELEASED, gfx::Point(25, 20), touch_id,
base::TimeTicks()));
- event_dispatcher()->ProcessEvent(pointer_event);
+ event_dispatcher()->ProcessEvent(
+ pointer_event, EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1246,7 +1338,8 @@ TEST_F(EventDispatcherTest, ResetClearsPointerDown) {
const ui::PointerEvent ui_event(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(20, 25), gfx::Point(20, 25),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(ui_event);
+ event_dispatcher()->ProcessEvent(ui_event,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1289,7 +1382,8 @@ TEST_F(EventDispatcherTest, ModalWindowEventOnModalParent) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(15, 15), gfx::Point(15, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1321,7 +1415,8 @@ TEST_F(EventDispatcherTest, ModalWindowEventOnModalChild) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(55, 15), gfx::Point(55, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1356,7 +1451,8 @@ TEST_F(EventDispatcherTest, ModalWindowEventOnUnrelatedWindow) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(75, 15), gfx::Point(75, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1392,7 +1488,8 @@ TEST_F(EventDispatcherTest, ModalWindowEventOnDescendantOfModalParent) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(25, 25), gfx::Point(25, 25),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1420,7 +1517,8 @@ TEST_F(EventDispatcherTest, ModalWindowEventOnSystemModal) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(15, 15), gfx::Point(15, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1449,7 +1547,8 @@ TEST_F(EventDispatcherTest, ModalWindowEventOutsideSystemModal) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(45, 15), gfx::Point(45, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
std::unique_ptr<DispatchedEventDetails> details =
test_event_dispatcher_delegate()->GetAndAdvanceDispatchedEventDetails();
@@ -1577,7 +1676,8 @@ TEST_F(EventDispatcherTest, CaptureNotResetOnParentChange) {
const ui::PointerEvent mouse_pressed(ui::MouseEvent(
ui::ET_MOUSE_PRESSED, gfx::Point(15, 15), gfx::Point(15, 15),
base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
- event_dispatcher()->ProcessEvent(mouse_pressed);
+ event_dispatcher()->ProcessEvent(mouse_pressed,
+ EventDispatcher::AcceleratorMatchPhase::ANY);
event_dispatcher()->SetCaptureWindow(w11.get(), kClientAreaId);
std::unique_ptr<DispatchedEventDetails> details =
« no previous file with comments | « services/ui/ws/event_dispatcher_delegate.h ('k') | services/ui/ws/test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698