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

Unified Diff: ash/mus/bridge/wm_shell_mus.cc

Issue 2539363005: Converts ash to use aura-mus (Closed)
Patch Set: merge Created 4 years 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
Index: ash/mus/bridge/wm_shell_mus.cc
diff --git a/ash/mus/bridge/wm_shell_mus.cc b/ash/mus/bridge/wm_shell_mus.cc
index acfd3d1a3dd06df6eec5e5244c74bfabf261fa82..ed59997c24d00ba8ceeca036a3c69afb62091911 100644
--- a/ash/mus/bridge/wm_shell_mus.cc
+++ b/ash/mus/bridge/wm_shell_mus.cc
@@ -33,12 +33,13 @@
#include "ash/shared/immersive_fullscreen_controller.h"
#include "base/memory/ptr_util.h"
#include "components/user_manager/user_info_impl.h"
-#include "services/ui/common/util.h"
-#include "services/ui/public/cpp/window.h"
-#include "services/ui/public/cpp/window_tree_client.h"
+#include "ui/aura/mus/window_tree_client.h"
+#include "ui/aura/window.h"
#include "ui/display/manager/managed_display_info.h"
#include "ui/display/screen.h"
-#include "ui/views/mus/pointer_watcher_event_router.h"
+#include "ui/views/mus/pointer_watcher_event_router2.h"
+#include "ui/wm/core/capture_controller.h"
+#include "ui/wm/core/focus_controller.h"
namespace ash {
namespace mus {
@@ -111,12 +112,11 @@ class SessionStateDelegateStub : public SessionStateDelegate {
WmShellMus::WmShellMus(
std::unique_ptr<ShellDelegate> shell_delegate,
WindowManager* window_manager,
- views::PointerWatcherEventRouter* pointer_watcher_event_router)
+ views::PointerWatcherEventRouter2* pointer_watcher_event_router)
: WmShell(std::move(shell_delegate)),
window_manager_(window_manager),
pointer_watcher_event_router_(pointer_watcher_event_router),
session_state_delegate_(new SessionStateDelegateStub) {
- window_tree_client()->AddObserver(this);
WmShell::Set(this);
uint16_t accelerator_namespace_id = 0u;
@@ -157,8 +157,6 @@ WmShellMus::~WmShellMus() {
DeleteWindowCycleController();
DeleteWindowSelectorController();
DeleteMruWindowTracker();
- if (window_tree_client())
- window_tree_client()->RemoveObserver(this);
WmShell::Set(nullptr);
}
@@ -184,7 +182,7 @@ void WmShellMus::RemoveRootWindowController(
}
// static
-WmWindowMus* WmShellMus::GetToplevelAncestor(ui::Window* window) {
+WmWindowMus* WmShellMus::GetToplevelAncestor(aura::Window* window) {
while (window) {
if (IsActivationParent(window->parent()))
return WmWindowMus::Get(window);
@@ -204,29 +202,39 @@ WmRootWindowControllerMus* WmShellMus::GetRootWindowControllerWithDisplayId(
return nullptr;
}
+aura::WindowTreeClient* WmShellMus::window_tree_client() {
+ return window_manager_->window_tree_client();
+}
+
bool WmShellMus::IsRunningInMash() const {
return true;
}
WmWindow* WmShellMus::NewWindow(ui::wm::WindowType window_type,
ui::LayerType layer_type) {
- WmWindowMus* window = WmWindowMus::Get(window_tree_client()->NewWindow());
- window->set_wm_window_type(window_type);
- // TODO(sky): support layer_type.
- NOTIMPLEMENTED();
- return window;
+ aura::Window* window = new aura::Window(nullptr);
+ window->SetType(window_type);
+ window->Init(layer_type);
+ return WmWindowMus::Get(window);
}
WmWindow* WmShellMus::GetFocusedWindow() {
- return WmWindowMus::Get(window_tree_client()->GetFocusedWindow());
+ // TODO: remove as both WmShells use same implementation.
+ return WmWindowMus::Get(static_cast<aura::client::FocusClient*>(
+ window_manager_->focus_controller())
+ ->GetFocusedWindow());
}
WmWindow* WmShellMus::GetActiveWindow() {
- return GetToplevelAncestor(window_tree_client()->GetFocusedWindow());
+ // TODO: remove as both WmShells use same implementation.
+ return WmWindowMus::Get(static_cast<aura::client::ActivationClient*>(
+ window_manager_->focus_controller())
+ ->GetActiveWindow());
}
WmWindow* WmShellMus::GetCaptureWindow() {
- return WmWindowMus::Get(window_tree_client()->GetCaptureWindow());
+ // TODO: remove as both WmShells use same implementation.
+ return WmWindowMus::Get(::wm::CaptureController::Get()->GetCaptureWindow());
}
WmWindow* WmShellMus::GetPrimaryRootWindow() {
@@ -276,11 +284,12 @@ bool WmShellMus::IsForceMaximizeOnFirstRun() {
void WmShellMus::SetDisplayWorkAreaInsets(WmWindow* window,
const gfx::Insets& insets) {
- RootWindowController* root_window_controller =
- GetRootWindowControllerWithDisplayId(
- WmWindowMus::GetMusWindow(window)->display_id())
- ->root_window_controller();
- root_window_controller->SetWorkAreaInests(insets);
+ WmRootWindowControllerMus* root_window_controller_mus =
+ static_cast<WmWindowMus*>(window)->GetRootWindowControllerMus();
+ if (!root_window_controller_mus)
James Cook 2016/12/05 19:21:44 Q: How could this be null when root_window_control
sky 2016/12/05 21:39:19 You are right. Fixed.
+ return;
+ root_window_controller_mus->root_window_controller()->SetWorkAreaInests(
+ insets);
}
bool WmShellMus::IsPinned() {
@@ -361,7 +370,7 @@ WmShellMus::CreateScopedDisableInternalMouseAndKeyboard() {
std::unique_ptr<WorkspaceEventHandler> WmShellMus::CreateWorkspaceEventHandler(
WmWindow* workspace_window) {
return base::MakeUnique<WorkspaceEventHandlerMus>(
- WmWindowMus::GetMusWindow(workspace_window));
+ WmWindowMus::GetAuraWindow(workspace_window));
}
std::unique_ptr<ImmersiveFullscreenController>
@@ -437,34 +446,23 @@ void WmShellMus::SetLaserPointerEnabled(bool enabled) {
}
#endif // defined(OS_CHROMEOS)
-ui::WindowTreeClient* WmShellMus::window_tree_client() {
- return window_manager_->window_tree_client();
-}
-
// static
-bool WmShellMus::IsActivationParent(ui::Window* window) {
+bool WmShellMus::IsActivationParent(aura::Window* window) {
return window && IsActivatableShellWindowId(
WmWindowMus::Get(window)->GetShellWindowId());
}
// TODO: support OnAttemptToReactivateWindow, http://crbug.com/615114.
-void WmShellMus::OnWindowTreeFocusChanged(ui::Window* gained_focus,
- ui::Window* lost_focus) {
- WmWindow* gained_active = GetToplevelAncestor(gained_focus);
- if (gained_active)
- set_root_window_for_new_windows(gained_active->GetRootWindow());
-
- WmWindow* lost_active = GetToplevelAncestor(lost_focus);
- if (gained_active == lost_active)
- return;
-
+// TODO: Nuke and let client code use ActivationChangeObserver directly.
+void WmShellMus::OnWindowActivated(ActivationReason reason,
+ aura::Window* gained_active,
+ aura::Window* lost_active) {
+ WmWindow* gained_active_wm = WmWindowMus::Get(gained_active);
+ if (gained_active_wm)
+ set_root_window_for_new_windows(gained_active_wm->GetRootWindow());
+ WmWindow* lost_active_wm = WmWindowMus::Get(lost_active);
for (auto& observer : activation_observers_)
- observer.OnWindowActivated(gained_active, lost_active);
-}
-
-void WmShellMus::OnDidDestroyClient(ui::WindowTreeClient* client) {
- DCHECK_EQ(window_tree_client(), client);
- client->RemoveObserver(this);
+ observer.OnWindowActivated(gained_active_wm, lost_active_wm);
}
} // namespace mus

Powered by Google App Engine
This is Rietveld 408576698