summaryrefslogtreecommitdiff
path: root/chromium/ui/wm/core/focus_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/wm/core/focus_controller.h')
-rw-r--r--chromium/ui/wm/core/focus_controller.h21
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);
};