diff options
author | flackr <flackr@chromium.org> | 2014-09-17 16:16:56 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-17 23:17:09 +0000 |
commit | 3ff3ac24a85a0c9388523405016f9a75cb4e832f (patch) | |
tree | 96a34208089cffd8f1ef134fba51bcb3d20658be /athena | |
parent | 9ff14a27211f1f31bdcc19380fe35edd7d0fe3e3 (diff) | |
download | chromium_src-3ff3ac24a85a0c9388523405016f9a75cb4e832f.zip chromium_src-3ff3ac24a85a0c9388523405016f9a75cb4e832f.tar.gz chromium_src-3ff3ac24a85a0c9388523405016f9a75cb4e832f.tar.bz2 |
Prevent split view also from hotkey or overview while in portrait.
BUG=411902,411904
TEST=Manual, rotate to portrait and notice split button is not visible when dragging window.
Review URL: https://codereview.chromium.org/578073003
Cr-Commit-Position: refs/heads/master@{#295374}
Diffstat (limited to 'athena')
-rw-r--r-- | athena/wm/split_view_controller.cc | 15 | ||||
-rw-r--r-- | athena/wm/split_view_controller.h | 4 | ||||
-rw-r--r-- | athena/wm/split_view_controller_unittest.cc | 2 | ||||
-rw-r--r-- | athena/wm/window_manager_impl.cc | 3 | ||||
-rw-r--r-- | athena/wm/window_overview_mode.cc | 2 |
5 files changed, 13 insertions, 13 deletions
diff --git a/athena/wm/split_view_controller.cc b/athena/wm/split_view_controller.cc index 8216723..b049928 100644 --- a/athena/wm/split_view_controller.cc +++ b/athena/wm/split_view_controller.cc @@ -56,6 +56,14 @@ SplitViewController::SplitViewController( SplitViewController::~SplitViewController() { } +bool SplitViewController::CanActivateSplitViewMode() const { + // TODO(mfomitchev): return false in full screen. + return (!IsSplitViewModeActive() && + window_list_provider_->GetWindowList().size() >= 2 && + IsLandscapeOrientation(gfx::Screen::GetNativeScreen()-> + GetDisplayNearestWindow(container_).rotation())); +} + bool SplitViewController::IsSplitViewModeActive() const { return state_ == ACTIVE; } @@ -312,12 +320,7 @@ void SplitViewController::ScrollUpdate(float delta) { } bool SplitViewController::CanScroll() { - // TODO(mfomitchev): return false in full screen. - bool result = (!IsSplitViewModeActive() && - window_list_provider_->GetWindowList().size() >= 2 && - IsLandscapeOrientation(gfx::Screen::GetNativeScreen()-> - GetDisplayNearestWindow(container_).rotation())); - return result; + return CanActivateSplitViewMode(); } } // namespace athena diff --git a/athena/wm/split_view_controller.h b/athena/wm/split_view_controller.h index fc476f0..5e87918 100644 --- a/athena/wm/split_view_controller.h +++ b/athena/wm/split_view_controller.h @@ -17,7 +17,6 @@ class Transform; namespace athena { class WindowListProvider; -class SplitViewControllerTest; // Responsible for entering split view mode, exiting from split view mode, and // laying out the windows in split view mode. @@ -29,6 +28,7 @@ class ATHENA_EXPORT SplitViewController virtual ~SplitViewController(); + bool CanActivateSplitViewMode() const; bool IsSplitViewModeActive() const; // Activates split-view mode with |left| and |right| windows. If |left| and/or @@ -56,8 +56,6 @@ class ATHENA_EXPORT SplitViewController aura::Window* right_window() { return right_window_; } private: - friend class SplitViewControllerTest; - enum State { // Split View mode is not active. |left_window_| and |right_window| are // NULL. diff --git a/athena/wm/split_view_controller_unittest.cc b/athena/wm/split_view_controller_unittest.cc index d84a9f8..1d78dd6 100644 --- a/athena/wm/split_view_controller_unittest.cc +++ b/athena/wm/split_view_controller_unittest.cc @@ -63,7 +63,7 @@ class SplitViewControllerTest : public test::AthenaTestBase { } bool IsSplitViewAllowed() const { - return api_->GetSplitViewController()->CanScroll(); + return api_->GetSplitViewController()->CanActivateSplitViewMode(); } test::WindowManagerImplTestApi* api() { diff --git a/athena/wm/window_manager_impl.cc b/athena/wm/window_manager_impl.cc index 9797422..a48fe46 100644 --- a/athena/wm/window_manager_impl.cc +++ b/athena/wm/window_manager_impl.cc @@ -291,7 +291,6 @@ bool WindowManagerImpl::OnAcceleratorFired(int command_id, } void WindowManagerImpl::ToggleSplitview() { - // TODO(oshima): Figure out what to do. if (IsOverviewModeActive()) return; @@ -300,7 +299,7 @@ void WindowManagerImpl::ToggleSplitview() { FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeExit()); // Relayout so that windows are maximzied. container_->layout_manager()->OnWindowResized(); - } else if (window_list_provider_->GetWindowList().size() > 1) { + } else if (split_view_controller_->CanActivateSplitViewMode()) { FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeEnter()); diff --git a/athena/wm/window_overview_mode.cc b/athena/wm/window_overview_mode.cc index 704223a..30c4a45 100644 --- a/athena/wm/window_overview_mode.cc +++ b/athena/wm/window_overview_mode.cc @@ -677,7 +677,7 @@ class WindowOverviewModeImpl : public WindowOverviewMode, // mode). If already in split-view mode, then do not show the 'Split' // option. overview_toolbar_.reset(new OverviewToolbar(container_)); - if (split_view_controller_->IsSplitViewModeActive()) { + if (!split_view_controller_->CanActivateSplitViewMode()) { overview_toolbar_->DisableAction( OverviewToolbar::ACTION_TYPE_SPLIT); } |