| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_WM_EVENT_CLIENT_IMPL_H_ |
| #define ASH_WM_EVENT_CLIENT_IMPL_H_ |
| |
| #include "ash/ash_export.h" |
| #include "base/macros.h" |
| #include "ui/aura/client/event_client.h" |
| |
| namespace ash { |
| |
| class ScopedSkipUserSessionBlockedCheck; |
| |
| class ASH_EXPORT EventClientImpl : public aura::client::EventClient { |
| public: |
| EventClientImpl(); |
| ~EventClientImpl() override; |
| |
| private: |
| friend class ScopedSkipUserSessionBlockedCheck; |
| |
| // Overridden from aura::client::EventClient: |
| bool CanProcessEventsWithinSubtree(const aura::Window* window) const override; |
| ui::EventTarget* GetToplevelEventTarget() override; |
| |
| // This should only be used by ScopedSkipUserSessionBlockedCheck for blocks of |
| // code which we want the checking of the user session to be blocked (ie. |
| // building mru list when entering tablet mode in lock screen). |
| void set_skip_user_session_blocked_check( |
| bool skip_user_session_blocked_check) { |
| skip_user_session_blocked_check_ = skip_user_session_blocked_check; |
| } |
| |
| // Flag indicating whether the user sesion checks in |
| // CanProcessEventsWithinSubtree should be skipped. |
| bool skip_user_session_blocked_check_ = false; |
| |
| DISALLOW_COPY_AND_ASSIGN(EventClientImpl); |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_WM_EVENT_CLIENT_IMPL_H_ |