| Index: ui/wm/core/default_activation_client.cc
|
| diff --git a/ui/aura/client/default_activation_client.cc b/ui/wm/core/default_activation_client.cc
|
| similarity index 55%
|
| rename from ui/aura/client/default_activation_client.cc
|
| rename to ui/wm/core/default_activation_client.cc
|
| index d8fdf8b01bac79150ce0d89a972630faa752beb6..222c9acb4cbb206b4712f40cf0f295aa69be538d 100644
|
| --- a/ui/aura/client/default_activation_client.cc
|
| +++ b/ui/wm/core/default_activation_client.cc
|
| @@ -1,45 +1,65 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Copyright 2013 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.
|
|
|
| -#include "ui/aura/client/default_activation_client.h"
|
| +#include "ui/wm/core/default_activation_client.h"
|
|
|
| #include "ui/aura/window.h"
|
| #include "ui/wm/public/activation_change_observer.h"
|
| #include "ui/wm/public/activation_delegate.h"
|
|
|
| -namespace aura {
|
| -namespace client {
|
| +namespace wm {
|
| +
|
| +// Takes care of observing root window destruction & destroying the client.
|
| +class DefaultActivationClient::Deleter : public aura::WindowObserver {
|
| + public:
|
| + Deleter(DefaultActivationClient* client, aura::Window* root_window)
|
| + : client_(client),
|
| + root_window_(root_window) {
|
| + root_window_->AddObserver(this);
|
| + }
|
| +
|
| + private:
|
| + virtual ~Deleter() {}
|
| +
|
| + // Overridden from WindowObserver:
|
| + virtual void OnWindowDestroyed(aura::Window* window) OVERRIDE {
|
| + DCHECK_EQ(window, root_window_);
|
| + root_window_->RemoveObserver(this);
|
| + delete client_;
|
| + delete this;
|
| + }
|
| +
|
| + DefaultActivationClient* client_;
|
| + aura::Window* root_window_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(Deleter);
|
| +};
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // DefaultActivationClient, public:
|
|
|
| -DefaultActivationClient::DefaultActivationClient(Window* root_window)
|
| +DefaultActivationClient::DefaultActivationClient(aura::Window* root_window)
|
| : last_active_(NULL) {
|
| - client::SetActivationClient(root_window, this);
|
| -}
|
| -
|
| -DefaultActivationClient::~DefaultActivationClient() {
|
| - for (unsigned int i = 0; i < active_windows_.size(); ++i) {
|
| - active_windows_[i]->RemoveObserver(this);
|
| - }
|
| + aura::client::SetActivationClient(root_window, this);
|
| + new Deleter(this, root_window);
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // DefaultActivationClient, client::ActivationClient implementation:
|
|
|
| void DefaultActivationClient::AddObserver(
|
| - client::ActivationChangeObserver* observer) {
|
| + aura::client::ActivationChangeObserver* observer) {
|
| observers_.AddObserver(observer);
|
| }
|
|
|
| void DefaultActivationClient::RemoveObserver(
|
| - client::ActivationChangeObserver* observer) {
|
| + aura::client::ActivationChangeObserver* observer) {
|
| observers_.RemoveObserver(observer);
|
| }
|
|
|
| -void DefaultActivationClient::ActivateWindow(Window* window) {
|
| - Window* last_active = GetActiveWindow();
|
| +void DefaultActivationClient::ActivateWindow(aura::Window* window) {
|
| + aura::Window* last_active = GetActiveWindow();
|
| if (last_active == window)
|
| return;
|
|
|
| @@ -49,7 +69,7 @@ void DefaultActivationClient::ActivateWindow(Window* window) {
|
| window->parent()->StackChildAtTop(window);
|
| window->AddObserver(this);
|
|
|
| - FOR_EACH_OBSERVER(client::ActivationChangeObserver,
|
| + FOR_EACH_OBSERVER(aura::client::ActivationChangeObserver,
|
| observers_,
|
| OnWindowActivated(window, last_active));
|
|
|
| @@ -62,7 +82,7 @@ void DefaultActivationClient::ActivateWindow(Window* window) {
|
| observer->OnWindowActivated(window, last_active);
|
| }
|
|
|
| -void DefaultActivationClient::DeactivateWindow(Window* window) {
|
| +void DefaultActivationClient::DeactivateWindow(aura::Window* window) {
|
| aura::client::ActivationChangeObserver* observer =
|
| aura::client::GetActivationChangeObserver(window);
|
| if (observer)
|
| @@ -71,39 +91,40 @@ void DefaultActivationClient::DeactivateWindow(Window* window) {
|
| ActivateWindow(last_active_);
|
| }
|
|
|
| -Window* DefaultActivationClient::GetActiveWindow() {
|
| +aura::Window* DefaultActivationClient::GetActiveWindow() {
|
| if (active_windows_.empty())
|
| return NULL;
|
| return active_windows_.back();
|
| }
|
|
|
| -Window* DefaultActivationClient::GetActivatableWindow(Window* window) {
|
| +aura::Window* DefaultActivationClient::GetActivatableWindow(
|
| + aura::Window* window) {
|
| return NULL;
|
| }
|
|
|
| -Window* DefaultActivationClient::GetToplevelWindow(Window* window) {
|
| +aura::Window* DefaultActivationClient::GetToplevelWindow(aura::Window* window) {
|
| return NULL;
|
| }
|
|
|
| -bool DefaultActivationClient::OnWillFocusWindow(Window* window,
|
| +bool DefaultActivationClient::OnWillFocusWindow(aura::Window* window,
|
| const ui::Event* event) {
|
| return true;
|
| }
|
|
|
| -bool DefaultActivationClient::CanActivateWindow(Window* window) const {
|
| +bool DefaultActivationClient::CanActivateWindow(aura::Window* window) const {
|
| return true;
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// DefaultActivationClient, WindowObserver implementation:
|
| +// DefaultActivationClient, aura::WindowObserver implementation:
|
|
|
| -void DefaultActivationClient::OnWindowDestroyed(Window* window) {
|
| +void DefaultActivationClient::OnWindowDestroyed(aura::Window* window) {
|
| if (window == last_active_)
|
| last_active_ = NULL;
|
|
|
| if (window == GetActiveWindow()) {
|
| active_windows_.pop_back();
|
| - Window* next_active = GetActiveWindow();
|
| + aura::Window* next_active = GetActiveWindow();
|
| if (next_active && aura::client::GetActivationChangeObserver(next_active)) {
|
| aura::client::GetActivationChangeObserver(next_active)->OnWindowActivated(
|
| next_active, NULL);
|
| @@ -114,7 +135,16 @@ void DefaultActivationClient::OnWindowDestroyed(Window* window) {
|
| RemoveActiveWindow(window);
|
| }
|
|
|
| -void DefaultActivationClient::RemoveActiveWindow(Window* window) {
|
| +////////////////////////////////////////////////////////////////////////////////
|
| +// DefaultActivationClient, private:
|
| +
|
| +DefaultActivationClient::~DefaultActivationClient() {
|
| + for (unsigned int i = 0; i < active_windows_.size(); ++i) {
|
| + active_windows_[i]->RemoveObserver(this);
|
| + }
|
| +}
|
| +
|
| +void DefaultActivationClient::RemoveActiveWindow(aura::Window* window) {
|
| for (unsigned int i = 0; i < active_windows_.size(); ++i) {
|
| if (active_windows_[i] == window) {
|
| active_windows_.erase(active_windows_.begin() + i);
|
| @@ -124,5 +154,4 @@ void DefaultActivationClient::RemoveActiveWindow(Window* window) {
|
| }
|
| }
|
|
|
| -} // namespace client
|
| -} // namespace aura
|
| +} // namespace wm
|
|
|