Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2724)

Unified Diff: ui/events/event_target_iterator.h

Issue 724973003: Get event targetting working for mouse events. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Patch beautification. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/events/event_target_iterator.h
diff --git a/ui/events/event_target_iterator.h b/ui/events/event_target_iterator.h
index 28b4a30202a3fa2e29d1f32520188f2ac5bb06cb..2adc62cd1f2941dcd67a81a64bbbcb14148ed159 100644
--- a/ui/events/event_target_iterator.h
+++ b/ui/events/event_target_iterator.h
@@ -43,6 +43,32 @@ class EventTargetIteratorImpl : public EventTargetIterator {
typename std::vector<T*>::const_reverse_iterator end_;
};
+// Provides a version which keeps a copy of the data (for when it has to be
+// derived instead of pointed at).
+template<typename T>
+class CopyingEventTargetIteratorImpl : public EventTargetIterator {
+ public:
+ explicit CopyingEventTargetIteratorImpl(const std::vector<T*>& children)
+ : children_(children),
+ begin_(children_.rbegin()),
+ end_(children_.rend()) {
+ }
+ virtual ~CopyingEventTargetIteratorImpl() {}
sky 2014/11/14 01:43:57 nit: no virtual, just override.
+
+ virtual EventTarget* GetNextTarget() override {
sky 2014/11/14 01:43:57 same thing, no virtual, just override.
+ if (begin_ == end_)
+ return NULL;
sky 2014/11/14 01:43:57 nullptr.
+ EventTarget* target = *(begin_);
+ ++begin_;
+ return target;
+ }
+
+ private:
+ typename std::vector<T*> children_;
+ typename std::vector<T*>::const_reverse_iterator begin_;
+ typename std::vector<T*>::const_reverse_iterator end_;
+};
+
} // namespace ui
#endif // UI_EVENTS_EVENT_TARGET_ITERATOR_H_

Powered by Google App Engine
This is Rietveld 408576698