| Index: ui/aura_shell/desktop_event_filter.h
|
| diff --git a/ui/aura_shell/desktop_event_filter.h b/ui/aura_shell/desktop_event_filter.h
|
| index 1ad0438e5ffe5c1a9c207affd17c8923c06436b6..a5cb2c85922840a45406e7c8b3eec583c6766114 100644
|
| --- a/ui/aura_shell/desktop_event_filter.h
|
| +++ b/ui/aura_shell/desktop_event_filter.h
|
| @@ -7,17 +7,29 @@
|
| #pragma once
|
|
|
| #include "base/compiler_specific.h"
|
| +#include "base/observer_list.h"
|
| #include "ui/aura/event_filter.h"
|
| #include "ui/aura_shell/aura_shell_export.h"
|
|
|
| namespace aura_shell {
|
| namespace internal {
|
|
|
| +// DesktopEventFilter gets all desktop events first and can provide actions to
|
| +// those events. It implements desktop features such as click to activate a
|
| +// window and cursor change when moving mouse.
|
| +// Additional event filters can be added to DesktopEventFilter. Events will
|
| +// pass through those additional filters in their addition order and could be
|
| +// consumed by any of those filters. If an event is consumed by a filter, the
|
| +// rest of the filter(s) and DesktopEventFilter will not see the consumed event.
|
| class AURA_SHELL_EXPORT DesktopEventFilter : public aura::EventFilter {
|
| public:
|
| DesktopEventFilter();
|
| virtual ~DesktopEventFilter();
|
|
|
| + // Adds/removes additional event filters.
|
| + void AddFilter(aura::EventFilter* filter);
|
| + void RemoveFilter(aura::EventFilter* filter);
|
| +
|
| // Overridden from EventFilter:
|
| virtual bool PreHandleKeyEvent(aura::Window* target,
|
| aura::KeyEvent* event) OVERRIDE;
|
| @@ -34,6 +46,16 @@ class AURA_SHELL_EXPORT DesktopEventFilter : public aura::EventFilter {
|
| // default resize cursors for window edges.
|
| void HandleMouseMoved(aura::Window* target, aura::MouseEvent* event);
|
|
|
| + // Dispatches event to addtional filters. Returns false or
|
| + // ui::TOUCH_STATUS_UNKNOWN if event is consumed.
|
| + bool FilterKeyEvent(aura::Window* target, aura::KeyEvent* event);
|
| + bool FilterMouseEvent(aura::Window* target, aura::MouseEvent* event);
|
| + ui::TouchStatus FilterTouchEvent(aura::Window* target,
|
| + aura::TouchEvent* event);
|
| +
|
| + // Additional event filters that pre-handles events.
|
| + ObserverList<aura::EventFilter, true> filters_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(DesktopEventFilter);
|
| };
|
|
|
|
|