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

Unified Diff: ui/aura/window_targeter.h

Issue 1119423003: Refactors away method implementations in ui::EventTargeter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactors ui::EventTargeter (makes ui::EventTargeter pure virtual) Created 5 years, 7 months 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/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);
};

Powered by Google App Engine
This is Rietveld 408576698