summaryrefslogtreecommitdiffstats
path: root/athena
diff options
context:
space:
mode:
authorflackr <flackr@chromium.org>2014-09-17 16:16:56 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-17 23:17:09 +0000
commit3ff3ac24a85a0c9388523405016f9a75cb4e832f (patch)
tree96a34208089cffd8f1ef134fba51bcb3d20658be /athena
parent9ff14a27211f1f31bdcc19380fe35edd7d0fe3e3 (diff)
downloadchromium_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.cc15
-rw-r--r--athena/wm/split_view_controller.h4
-rw-r--r--athena/wm/split_view_controller_unittest.cc2
-rw-r--r--athena/wm/window_manager_impl.cc3
-rw-r--r--athena/wm/window_overview_mode.cc2
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);
}