summaryrefslogtreecommitdiffstats
path: root/ui/events/event_targeter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/events/event_targeter.cc')
-rw-r--r--ui/events/event_targeter.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/ui/events/event_targeter.cc b/ui/events/event_targeter.cc
index 41d4442..50fe7e9 100644
--- a/ui/events/event_targeter.cc
+++ b/ui/events/event_targeter.cc
@@ -32,16 +32,18 @@ EventTarget* EventTargeter::FindTargetForLocatedEvent(EventTarget* root,
EventTarget* target = root;
EventTarget* child = NULL;
while ((child = iter->GetNextTarget())) {
- if (!SubtreeShouldBeExploredForEvent(child, *event))
+ EventTargeter* targeter = child->GetEventTargeter();
+ if (!targeter)
+ targeter = this;
+ if (!targeter->SubtreeShouldBeExploredForEvent(child, *event))
continue;
target->ConvertEventToTarget(child, event);
- EventTargeter* targeter = child->GetEventTargeter();
+ target = child;
EventTarget* child_target = targeter ?
targeter->FindTargetForLocatedEvent(child, event) :
FindTargetForLocatedEvent(child, event);
if (child_target)
return child_target;
- target = child;
}
target->ConvertEventToTarget(root, event);
}