1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ui/events/event_processor.h" 6 7 #include "ui/events/event_target.h" 8 #include "ui/events/event_targeter.h" 9 10 namespace ui { 11 OnEventFromSource(Event * event)12EventDispatchDetails EventProcessor::OnEventFromSource(Event* event) { 13 EventTarget* root = GetRootTarget(); 14 CHECK(root); 15 EventTargeter* targeter = root->GetEventTargeter(); 16 CHECK(targeter); 17 18 PrepareEventForDispatch(event); 19 EventTarget* target = targeter->FindTargetForEvent(root, event); 20 21 while (target) { 22 EventDispatchDetails details = DispatchEvent(target, event); 23 if (details.dispatcher_destroyed || 24 details.target_destroyed || 25 event->handled()) { 26 return details; 27 } 28 29 target = targeter->FindNextBestTarget(target, event); 30 } 31 32 return EventDispatchDetails(); 33 } 34 PrepareEventForDispatch(Event * event)35void EventProcessor::PrepareEventForDispatch(Event* event) { 36 } 37 38 } // namespace ui 39