Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Unified Diff: ui/wm/core/default_activation_client.cc

Issue 250113002: Move DefaultActivationClient to wm/core (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/wm/core/default_activation_client.h ('k') | ui/wm/core/input_method_event_filter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « ui/wm/core/default_activation_client.h ('k') | ui/wm/core/input_method_event_filter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698