| Index: athena/wm/split_view_controller.cc
|
| diff --git a/athena/wm/split_view_controller.cc b/athena/wm/split_view_controller.cc
|
| index cde465798a80420057ab96ae344b69ef951a8cad..35a43ea0ded2bf7c40f74297701628bd95190a89 100644
|
| --- a/athena/wm/split_view_controller.cc
|
| +++ b/athena/wm/split_view_controller.cc
|
| @@ -56,11 +56,13 @@ SplitViewController::SplitViewController(
|
| right_window_(NULL),
|
| separator_position_(0),
|
| weak_factory_(this) {
|
| - window_manager->AddObserver(this);
|
| + if (window_manager_)
|
| + window_manager_->AddObserver(this);
|
| }
|
|
|
| SplitViewController::~SplitViewController() {
|
| - window_manager_->RemoveObserver(this);
|
| + if (window_manager_)
|
| + window_manager_->RemoveObserver(this);
|
| }
|
|
|
| bool SplitViewController::IsSplitViewModeActive() const {
|
| @@ -72,6 +74,11 @@ void SplitViewController::ActivateSplitMode(aura::Window* left,
|
| aura::Window::Windows windows = window_list_provider_->GetWindowList();
|
| aura::Window::Windows::reverse_iterator iter = windows.rbegin();
|
| if (state_ == ACTIVE) {
|
| + if (left_window_ == right)
|
| + left_window_ = left;
|
| + if (right_window_ == left)
|
| + right_window_ = right;
|
| +
|
| if (!left)
|
| left = left_window_;
|
| if (!right)
|
| @@ -280,7 +287,7 @@ void SplitViewController::ScrollUpdate(float delta) {
|
|
|
| bool SplitViewController::CanScroll() {
|
| // TODO(mfomitchev): return false in vertical orientation, in full screen.
|
| - bool result = (!window_manager_->IsOverviewModeActive() &&
|
| + bool result = (window_manager_ && !window_manager_->IsOverviewModeActive() &&
|
| !IsSplitViewModeActive() &&
|
| window_list_provider_->GetWindowList().size() >= 2);
|
| return result;
|
|
|