blob: 3077cc85b168aea483a9e506021af80b5e64375e [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/events/event_processor.h"
#include "ui/events/event_target.h"
#include "ui/events/event_targeter.h"
namespace ui {
EventDispatchDetails EventProcessor::OnEventFromSource(Event* event) {
EventTarget* root = GetRootTarget();
CHECK(root);
EventTargeter* targeter = root->GetEventTargeter();
CHECK(targeter);
PrepareEventForDispatch(event);
EventTarget* target = targeter->FindTargetForEvent(root, event);
while (target) {
EventDispatchDetails details = DispatchEvent(target, event);
if (details.dispatcher_destroyed ||
details.target_destroyed ||
event->handled()) {
return details;
}
target = targeter->FindNextBestTarget(target, event);
}
return EventDispatchDetails();
}
void EventProcessor::PrepareEventForDispatch(Event* event) {
}
} // namespace ui