Index: ui/events/event_dispatcher.cc |
diff --git a/ui/events/event_dispatcher.cc b/ui/events/event_dispatcher.cc |
index 1c11ef9fe5bd3063d0d55d63b4cc20ec9e543ae9..a1fbafa79c08f01c776fbcfb9a7ca10369db7ae5 100644 |
--- a/ui/events/event_dispatcher.cc |
+++ b/ui/events/event_dispatcher.cc |
@@ -46,8 +46,12 @@ Event* EventDispatcherDelegate::current_event() { |
EventDispatchDetails EventDispatcherDelegate::DispatchEvent(EventTarget* target, |
Event* event) { |
CHECK(target); |
+ Event::DispatcherApi dispatch_helper(event); |
+ dispatch_helper.set_phase(EP_PREDISPATCH); |
+ dispatch_helper.set_result(ER_UNHANDLED); |
+ |
EventDispatchDetails details = PreDispatchEvent(target, event); |
- if (!details.dispatcher_destroyed) |
+ if (!event->handled() && !details.dispatcher_destroyed) |
details = DispatchEventToTarget(target, event); |
if (!details.dispatcher_destroyed) |
details = PostDispatchEvent(target, *event); |