Index: athena/wm/window_manager_impl.cc |
diff --git a/athena/wm/window_manager_impl.cc b/athena/wm/window_manager_impl.cc |
index 47e49b64584e8948dc8408d24f1f17a7e993b4bd..560252aec02a3f9e8a8e69a9a040acbae2b47870 100644 |
--- a/athena/wm/window_manager_impl.cc |
+++ b/athena/wm/window_manager_impl.cc |
@@ -10,7 +10,6 @@ |
#include "athena/input/public/accelerator_manager.h" |
#include "athena/screen/public/screen_manager.h" |
#include "athena/wm/bezel_controller.h" |
-#include "athena/wm/mru_window_tracker.h" |
#include "athena/wm/public/window_manager_observer.h" |
#include "athena/wm/split_view_controller.h" |
#include "athena/wm/title_drag_controller.h" |
@@ -42,8 +41,6 @@ class WindowManagerImpl : public WindowManager, |
// WindowManager: |
virtual void ToggleOverview() OVERRIDE; |
- virtual bool IsOverviewModeActive() OVERRIDE; |
- |
private: |
enum Command { |
CMD_TOGGLE_OVERVIEW, |
@@ -76,17 +73,14 @@ class WindowManagerImpl : public WindowManager, |
virtual void OnTitleDragCompleted(aura::Window* window) OVERRIDE; |
virtual void OnTitleDragCanceled(aura::Window* window) OVERRIDE; |
- // Should be declared first so that it is destoyed last. |
- ObserverList<WindowManagerObserver> observers_; |
- |
scoped_ptr<aura::Window> container_; |
- scoped_ptr<MruWindowTracker> mru_window_tracker_; |
scoped_ptr<WindowOverviewMode> overview_; |
scoped_ptr<BezelController> bezel_controller_; |
scoped_ptr<SplitViewController> split_view_controller_; |
scoped_ptr<wm::WMState> wm_state_; |
scoped_ptr<TitleDragController> title_drag_controller_; |
scoped_ptr<wm::ShadowController> shadow_controller_; |
+ ObserverList<WindowManagerObserver> observers_; |
DISALLOW_COPY_AND_ASSIGN(WindowManagerImpl); |
}; |
@@ -118,10 +112,8 @@ WindowManagerImpl::WindowManagerImpl() { |
container_.reset(ScreenManager::Get()->CreateDefaultContainer(params)); |
container_->SetLayoutManager(new AthenaContainerLayoutManager); |
container_->AddObserver(this); |
- mru_window_tracker_.reset(new MruWindowTracker(container_.get())); |
bezel_controller_.reset(new BezelController(container_.get())); |
- split_view_controller_.reset(new SplitViewController( |
- container_.get(), mru_window_tracker_.get(), this)); |
+ split_view_controller_.reset(new SplitViewController()); |
bezel_controller_->set_left_right_delegate(split_view_controller_.get()); |
container_->AddPreTargetHandler(bezel_controller_.get()); |
title_drag_controller_.reset(new TitleDragController(container_.get(), this)); |
@@ -162,26 +154,15 @@ void WindowManagerImpl::ToggleOverview() { |
SetInOverview(overview_.get() == NULL); |
} |
-bool WindowManagerImpl::IsOverviewModeActive() { |
- return overview_; |
-} |
- |
void WindowManagerImpl::SetInOverview(bool active) { |
bool in_overview = !!overview_; |
if (active == in_overview) |
return; |
if (active) { |
+ overview_ = WindowOverviewMode::Create(container_.get(), this); |
FOR_EACH_OBSERVER(WindowManagerObserver, observers_, |
OnOverviewModeEnter()); |
- // Re-stack all windows in the order defined by mru_window_tracker_. |
- aura::Window::Windows window_list = mru_window_tracker_->GetWindowList(); |
- aura::Window::Windows::iterator it; |
- for (it = window_list.begin(); it != window_list.end(); ++it) |
- container_->StackChildAtTop(*it); |
- overview_ = WindowOverviewMode::Create(container_.get(), |
- mru_window_tracker_.get(), |
- this); |
} else { |
overview_.reset(); |
FOR_EACH_OBSERVER(WindowManagerObserver, observers_, |
@@ -207,7 +188,8 @@ void WindowManagerImpl::RemoveObserver(WindowManagerObserver* observer) { |
} |
void WindowManagerImpl::OnSelectWindow(aura::Window* window) { |
- mru_window_tracker_->MoveToFront(window); |
+ CHECK_EQ(container_.get(), window->parent()); |
+ container_->StackChildAtTop(window); |
wm::ActivateWindow(window); |
SetInOverview(false); |
} |