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

Unified Diff: ash/common/wm_window.cc

Issue 2625113004: Unify window fullscreen and minimizing implementation (Closed)
Patch Set: Update Created 3 years, 11 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: ash/common/wm_window.cc
diff --git a/ash/common/wm_window.cc b/ash/common/wm_window.cc
index 74c64d6e5a579ac1eb7a2b4aeb4e12862150a424..21281fd6197dc4782a958ff33dd4013450d69869 100644
--- a/ash/common/wm_window.cc
+++ b/ash/common/wm_window.cc
@@ -610,6 +610,7 @@ ui::WindowShowState WmWindow::GetShowState() const {
}
void WmWindow::SetPreMinimizedShowState(ui::WindowShowState show_state) {
+ DCHECK_NE(show_state, ui::SHOW_STATE_PREVIOUS);
window_->SetProperty(aura::client::kPreMinimizedShowStateKey, show_state);
}
@@ -621,6 +622,7 @@ void WmWindow::SetPreFullscreenShowState(ui::WindowShowState show_state) {
// We should never store the ui::SHOW_STATE_MINIMIZED as the show state before
// fullscreen.
DCHECK_NE(show_state, ui::SHOW_STATE_MINIMIZED);
+ DCHECK_NE(show_state, ui::SHOW_STATE_PREVIOUS);
window_->SetProperty(aura::client::kPreFullscreenShowStateKey, show_state);
}
@@ -772,6 +774,7 @@ void WmWindow::SetFullscreen(bool fullscreen) {
} else {
auto state = window_->GetProperty(aura::client::kPreFullscreenShowStateKey);
DCHECK_NE(state, ui::SHOW_STATE_MINIMIZED);
+ DCHECK_NE(state, ui::SHOW_STATE_PREVIOUS);
window_->SetProperty(aura::client::kShowStateKey, state);
window_->ClearProperty(aura::client::kPreFullscreenShowStateKey);
}
@@ -942,7 +945,19 @@ void WmWindow::OnWindowPropertyChanged(aura::Window* window,
const void* key,
intptr_t old) {
if (key == aura::client::kShowStateKey) {
- ash::wm::GetWindowState(window_)->OnWindowShowStateChanged();
+ ui::WindowShowState state = GetShowState();
+ if (state == ui::SHOW_STATE_PREVIOUS) {
+ ui::WindowShowState old_state = static_cast<ui::WindowShowState>(old);
+ if (old_state == ui::SHOW_STATE_FULLSCREEN) {
+ SetFullscreen(false);
+ } else if (old_state == ui::SHOW_STATE_MINIMIZED) {
+ Unminimize();
+ } else {
+ NOTREACHED();
+ }
+ } else {
+ ash::wm::GetWindowState(window_)->OnWindowShowStateChanged();
+ }
return;
}
WmWindowProperty wm_property;

Powered by Google App Engine
This is Rietveld 408576698