Index: ui/events/event_targeter.cc |
diff --git a/ui/events/event_targeter.cc b/ui/events/event_targeter.cc |
index 41d44426596cee34473be261c1e43741314919d1..50fe7e92051814b2d7d7c6996e1571aa1c1ac1c4 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); |
} |