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

Unified Diff: athena/wm/window_manager_impl.cc

Issue 550043002: Keep the split view activities topmost in z-order in Athena (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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/window_manager_impl.cc
diff --git a/athena/wm/window_manager_impl.cc b/athena/wm/window_manager_impl.cc
index bd93b2350cbca65bc48af2ab0addf40162dae5b7..3b15cd3eeb9479fd7720292bbf1c5008e97afde4 100644
--- a/athena/wm/window_manager_impl.cc
+++ b/athena/wm/window_manager_impl.cc
@@ -102,6 +102,8 @@ void AthenaContainerLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
if (std::find(list.begin(), list.end(), child) == list.end())
return;
if (instance->split_view_controller_->IsSplitViewModeActive()) {
+ child->Show();
+ wm::ActivateWindow(child);
instance->split_view_controller_->ReplaceWindow(
instance->split_view_controller_->left_window(), child);
} else {
@@ -174,6 +176,27 @@ bool WindowManagerImpl::IsOverviewModeActive() {
return overview_;
}
+void WindowManagerImpl::ToggleSplitView() {
+ // TODO(oshima): Figure out what to do.
+ if (IsOverviewModeActive())
+ return;
+
+ if (split_view_controller_->IsSplitViewModeActive()) {
+ split_view_controller_->DeactivateSplitMode();
+ FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeExit());
+ // Relayout so that windows are maximzied.
+ container_->layout_manager()->OnWindowResized();
+ } else if (window_list_provider_->GetWindowList().size() > 1) {
+ FOR_EACH_OBSERVER(WindowManagerObserver,
+ observers_,
+ OnSplitViewModeEnter());
+ aura::Window* active_window =
+ window_list_provider_->GetWindowList().back();
+ wm::ActivateWindow(active_window);
+ split_view_controller_->ActivateSplitMode(active_window, NULL);
+ }
+}
+
void WindowManagerImpl::SetInOverview(bool active) {
bool in_overview = !!overview_;
if (active == in_overview)
@@ -218,7 +241,7 @@ void WindowManagerImpl::RemoveObserver(WindowManagerObserver* observer) {
}
void WindowManagerImpl::ToggleSplitViewForTest() {
- ToggleSplitview();
+ ToggleSplitView();
}
void WindowManagerImpl::OnSelectWindow(aura::Window* window) {
@@ -257,6 +280,10 @@ void WindowManagerImpl::OnSplitViewMode(aura::Window* left,
aura::Window* right) {
SetInOverview(false);
FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeEnter());
+ if (right)
+ wm::ActivateWindow(right);
+ else
+ wm::ActivateWindow(left);
pkotwicz 2014/09/08 02:27:46 I will add a parameter to indicate which window sh
split_view_controller_->ActivateSplitMode(left, right);
}
@@ -283,30 +310,12 @@ bool WindowManagerImpl::OnAcceleratorFired(int command_id,
ToggleOverview();
break;
case CMD_TOGGLE_SPLIT_VIEW:
- ToggleSplitview();
+ ToggleSplitView();
break;
}
return true;
}
-void WindowManagerImpl::ToggleSplitview() {
- // TODO(oshima): Figure out what to do.
- if (IsOverviewModeActive())
- return;
-
- if (split_view_controller_->IsSplitViewModeActive()) {
- split_view_controller_->DeactivateSplitMode();
- FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeExit());
- // Relayout so that windows are maximzied.
- container_->layout_manager()->OnWindowResized();
- } else if (window_list_provider_->GetWindowList().size() > 1) {
- FOR_EACH_OBSERVER(WindowManagerObserver,
- observers_,
- OnSplitViewModeEnter());
- split_view_controller_->ActivateSplitMode(NULL, NULL);
- }
-}
-
aura::Window* WindowManagerImpl::GetWindowBehind(aura::Window* window) {
const aura::Window::Windows& windows = window_list_provider_->GetWindowList();
aura::Window::Windows::const_reverse_iterator iter =
@@ -356,8 +365,8 @@ void WindowManagerImpl::OnTitleDragCompleted(aura::Window* window) {
if (!next_window)
return;
if (split_view_controller_->IsSplitViewModeActive()) {
- split_view_controller_->ReplaceWindow(window, next_window);
wm::ActivateWindow(next_window);
+ split_view_controller_->ReplaceWindow(window, next_window);
} else {
ui::ScopedLayerAnimationSettings
settings(next_window->layer()->GetAnimator());

Powered by Google App Engine
This is Rietveld 408576698