Chromium Code Reviews| Index: ui/aura/window_targeter.h |
| diff --git a/ui/aura/window_targeter.h b/ui/aura/window_targeter.h |
| index 9571f2ab32f70d982bd533af4ea540964d6dd01d..1ad7f449bb7de73040ae6092cdc9ec7608064ce3 100644 |
| --- a/ui/aura/window_targeter.h |
| +++ b/ui/aura/window_targeter.h |
| @@ -5,9 +5,17 @@ |
| #ifndef UI_AURA_WINDOW_TARGETER_H_ |
| #define UI_AURA_WINDOW_TARGETER_H_ |
| +#include "base/macros.h" |
| #include "ui/aura/aura_export.h" |
| #include "ui/events/event_targeter.h" |
| +namespace ui { |
| + |
|
tdanderson
2015/05/22 18:29:56
nit: remove newlines
varkha
2015/05/22 22:18:34
Done.
|
| +class KeyEvent; |
| +class LocatedEvent; |
| + |
| +} // namespace ui |
| + |
| namespace aura { |
| class Window; |
| @@ -17,22 +25,50 @@ class AURA_EXPORT WindowTargeter : public ui::EventTargeter { |
| WindowTargeter(); |
| ~WindowTargeter() override; |
| + // Returns true if |target| or one of its descendants can be a target of |
|
tdanderson
2015/05/22 18:29:56
nit: update |target| to |window| in docs (many pla
varkha
2015/05/22 22:18:34
Done.
|
| + // |event|. This requires that |target| and its descendants are not |
| + // prohibited from accepting the event, and that the event is within an |
| + // actionable region of the target's bounds. Note that the location etc. of |
| + // |event| is in |target|'s parent's coordinate system. |
| + virtual bool SubtreeShouldBeExploredForEvent(Window* window, |
| + const ui::LocatedEvent& event); |
| + |
| protected: |
| + // Same as FindTargetForEvent(), but used for positional events. The location |
| + // etc. of |event| are in |root|'s coordinate system. When finding the target |
| + // for the event, the targeter can mutate the |event| (e.g. change the |
| + // coordinate to be in the returned target's coordinate system) so that it can |
| + // be dispatched to the target without any further modification. |
| + virtual Window* FindTargetForLocatedEvent(Window* window, |
| + ui::LocatedEvent* event); |
| + |
| + // Returns false if neither |target| nor any of its descendants are allowed |
| + // to accept |event| for reasons unrelated to the event's location or the |
| + // target's bounds. For example, overrides of this function may consider |
| + // attributes such as the visibility or enabledness of |target|. Note that |
| + // the location etc. of |event| is in |target|'s parent's coordinate system. |
| + virtual bool SubtreeCanAcceptEvent(Window* window, |
| + const ui::LocatedEvent& event) const; |
| + |
| + // Returns whether the location of the event is in an actionable region of the |
| + // target. Note that the location etc. of |event| is in the |target|'s |
| + // parent's coordinate system. |
| + virtual bool EventLocationInsideBounds(Window* target, |
| + const ui::LocatedEvent& event) const; |
| + |
| // ui::EventTargeter: |
| ui::EventTarget* FindTargetForEvent(ui::EventTarget* root, |
| ui::Event* event) override; |
| - ui::EventTarget* FindTargetForLocatedEvent(ui::EventTarget* root, |
| - ui::LocatedEvent* event) override; |
| - bool SubtreeCanAcceptEvent(ui::EventTarget* target, |
| - const ui::LocatedEvent& event) const override; |
| - bool EventLocationInsideBounds(ui::EventTarget* target, |
| - const ui::LocatedEvent& event) const override; |
| + ui::EventTarget* FindNextBestTarget(ui::EventTarget* previous_target, |
| + ui::Event* event) override; |
| private: |
| - Window* FindTargetForKeyEvent(Window* root_window, |
| - const ui::KeyEvent& event); |
| + Window* FindTargetForKeyEvent(Window* root_window, const ui::KeyEvent& event); |
| + Window* FindTargetForNonKeyEvent(Window* root_window, ui::Event* event); |
| Window* FindTargetInRootWindow(Window* root_window, |
| const ui::LocatedEvent& event); |
| + Window* FindTargetForLocatedEventRecursively(Window* root_window, |
| + ui::LocatedEvent* event); |
| DISALLOW_COPY_AND_ASSIGN(WindowTargeter); |
| }; |