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

Unified Diff: ash/wm/aura/wm_globals_aura.cc

Issue 1918883002: Makes Panel related classes use ash/wm/common types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@phantom_window_controller
Patch Set: feedback Created 4 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 | « ash/wm/aura/wm_globals_aura.h ('k') | ash/wm/aura/wm_window_aura.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/aura/wm_globals_aura.cc
diff --git a/ash/wm/aura/wm_globals_aura.cc b/ash/wm/aura/wm_globals_aura.cc
index c50c72683afb08f1bed7c82eb0b0d3869784a888..2d2d455da07f51aef421a8fbde871635ce5a416c 100644
--- a/ash/wm/aura/wm_globals_aura.cc
+++ b/ash/wm/aura/wm_globals_aura.cc
@@ -10,6 +10,8 @@
#include "ash/shell_delegate.h"
#include "ash/wm/aura/wm_window_aura.h"
#include "ash/wm/common/wm_activation_observer.h"
+#include "ash/wm/common/wm_display_observer.h"
+#include "ash/wm/common/wm_overview_mode_observer.h"
#include "ash/wm/mru_window_tracker.h"
#include "ash/wm/window_util.h"
#include "ui/aura/client/focus_client.h"
@@ -31,6 +33,7 @@ WmGlobals* WmGlobals::Get() {
WmGlobalsAura::WmGlobalsAura() {
DCHECK(!instance_);
instance_ = this;
+ Shell::GetInstance()->AddShellObserver(this);
}
WmGlobalsAura::~WmGlobalsAura() {
@@ -39,6 +42,10 @@ WmGlobalsAura::~WmGlobalsAura() {
aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())
->RemoveObserver(this);
}
+ if (added_display_observer_)
+ Shell::GetInstance()->window_tree_host_manager()->RemoveObserver(this);
+
+ Shell::GetInstance()->RemoveShellObserver(this);
}
// static
@@ -115,6 +122,27 @@ void WmGlobalsAura::RemoveActivationObserver(WmActivationObserver* observer) {
activation_observers_.RemoveObserver(observer);
}
+void WmGlobalsAura::AddDisplayObserver(WmDisplayObserver* observer) {
+ if (!added_display_observer_) {
+ added_display_observer_ = true;
+ Shell::GetInstance()->window_tree_host_manager()->AddObserver(this);
+ }
+ display_observers_.AddObserver(observer);
+}
+
+void WmGlobalsAura::RemoveDisplayObserver(WmDisplayObserver* observer) {
+ display_observers_.RemoveObserver(observer);
+}
+
+void WmGlobalsAura::AddOverviewModeObserver(WmOverviewModeObserver* observer) {
+ overview_mode_observers_.AddObserver(observer);
+}
+
+void WmGlobalsAura::RemoveOverviewModeObserver(
+ WmOverviewModeObserver* observer) {
+ overview_mode_observers_.RemoveObserver(observer);
+}
+
void WmGlobalsAura::OnWindowActivated(
aura::client::ActivationChangeObserver::ActivationReason reason,
aura::Window* gained_active,
@@ -124,5 +152,15 @@ void WmGlobalsAura::OnWindowActivated(
WmWindowAura::Get(lost_active)));
}
+void WmGlobalsAura::OnDisplayConfigurationChanged() {
+ FOR_EACH_OBSERVER(WmDisplayObserver, display_observers_,
+ OnDisplayConfigurationChanged());
+}
+
+void WmGlobalsAura::OnOverviewModeEnded() {
+ FOR_EACH_OBSERVER(WmOverviewModeObserver, overview_mode_observers_,
+ OnOverviewModeEnded());
+}
+
} // namespace wm
} // namespace ash
« no previous file with comments | « ash/wm/aura/wm_globals_aura.h ('k') | ash/wm/aura/wm_window_aura.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698