| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_APP_LIST_APP_LIST_EVENT_TARGETER_H_ |
| #define ASH_APP_LIST_APP_LIST_EVENT_TARGETER_H_ |
| |
| #include "base/memory/raw_ptr.h" |
| #include "ui/aura/window_targeter.h" |
| |
| namespace ash { |
| |
| class AppListViewDelegate; |
| |
| // This targeter prevents routing events to sub-windows, such as |
| // RenderHostWindow in order to handle events in context of app list. |
| // See https://crbug.com/924624 |
| class AppListEventTargeter : public aura::WindowTargeter { |
| public: |
| explicit AppListEventTargeter(AppListViewDelegate* delegate); |
| AppListEventTargeter(const AppListEventTargeter&) = delete; |
| AppListEventTargeter& operator=(const AppListEventTargeter&) = delete; |
| ~AppListEventTargeter() override; |
| |
| // aura::WindowTargeter: |
| bool SubtreeShouldBeExploredForEvent(aura::Window* window, |
| const ui::LocatedEvent& event) override; |
| |
| private: |
| const raw_ptr<AppListViewDelegate> delegate_; |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_APP_LIST_APP_LIST_EVENT_TARGETER_H_ |