Home | History | Annotate | Download | only in events
      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 
     12 EventDispatchDetails 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 
     35 void EventProcessor::PrepareEventForDispatch(Event* event) {
     36 }
     37 
     38 }  // namespace ui
     39