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

Unified Diff: athena/wm/split_view_controller.cc

Issue 472963002: athena: Add a test for split-view controller. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 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
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..dffce6fd9bdbad8afea3365a8839ab5faed7a503 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)
@@ -97,10 +104,14 @@ void SplitViewController::ActivateSplitMode(aura::Window* left,
}
state_ = ACTIVE;
- left_window_ = left;
- right_window_ = right;
- container_->StackChildAtTop(right_window_);
- container_->StackChildAtTop(left_window_);
+ if (right_window_ != right) {
+ right_window_ = right;
+ container_->StackChildAtTop(right_window_);
+ }
+ if (left_window_ != left) {
+ left_window_ = left;
+ container_->StackChildAtTop(left_window_);
+ }
UpdateLayout(true);
}
@@ -280,7 +291,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;

Powered by Google App Engine
This is Rietveld 408576698