diff options
Diffstat (limited to 'chromium/ui/wm/core/focus_controller.h')
-rw-r--r-- | chromium/ui/wm/core/focus_controller.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/chromium/ui/wm/core/focus_controller.h b/chromium/ui/wm/core/focus_controller.h index 1c857fea1c4..e88ac12ac1b 100644 --- a/chromium/ui/wm/core/focus_controller.h +++ b/chromium/ui/wm/core/focus_controller.h @@ -10,6 +10,7 @@ #include "base/compiler_specific.h" #include "base/macros.h" #include "base/observer_list.h" +#include "base/optional.h" #include "base/scoped_observer.h" #include "ui/aura/client/focus_client.h" #include "ui/aura/window_observer.h" @@ -55,9 +56,10 @@ class WM_CORE_EXPORT FocusController : public ActivationClient, void ActivateWindow(aura::Window* window) override; void DeactivateWindow(aura::Window* window) override; const aura::Window* GetActiveWindow() const override; - aura::Window* GetActivatableWindow(aura::Window* window) override; - aura::Window* GetToplevelWindow(aura::Window* window) override; - bool CanActivateWindow(aura::Window* window) const override; + aura::Window* GetActivatableWindow(aura::Window* window) const override; + const aura::Window* GetToplevelWindow( + const aura::Window* window) const override; + bool CanActivateWindow(const aura::Window* window) const override; // Overridden from aura::client::FocusClient: void AddObserver(aura::client::FocusChangeObserver* observer) override; @@ -116,11 +118,14 @@ class WM_CORE_EXPORT FocusController : public ActivationClient, void WindowFocusedFromInputEvent(aura::Window* window, const ui::Event* event); - aura::Window* active_window_; - aura::Window* focused_window_; + aura::Window* active_window_ = nullptr; + aura::Window* focused_window_ = nullptr; - bool updating_focus_; - bool updating_activation_; + bool updating_focus_ = false; + + // An optional value. It is set to the window being activated and is unset + // after it is activated. + base::Optional<aura::Window*> pending_activation_; std::unique_ptr<FocusRules> rules_; @@ -128,7 +133,7 @@ class WM_CORE_EXPORT FocusController : public ActivationClient, base::ObserverList<aura::client::FocusChangeObserver>::Unchecked focus_observers_; - ScopedObserver<aura::Window, aura::WindowObserver> observer_manager_; + ScopedObserver<aura::Window, aura::WindowObserver> observer_manager_{this}; DISALLOW_COPY_AND_ASSIGN(FocusController); }; |