Index: ui/views/widget/widget.cc |
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
index 6873cdef533fd482cec2b6a5d2a34a1692fb5bcb..26e407ae8d386c57e5b2f43305a49ddd6143821f 100644 |
--- a/ui/views/widget/widget.cc |
+++ b/ui/views/widget/widget.cc |
@@ -631,14 +631,17 @@ void Widget::Show() { |
// While initializing, the kiosk mode will go to full screen before the |
// widget gets shown. In that case we stay in full screen mode, regardless |
// of the |saved_show_state_| member. |
- if (saved_show_state_ == ui::SHOW_STATE_MAXIMIZED && |
- !initial_restored_bounds_.IsEmpty() && |
- !IsFullscreen()) { |
+ if (((saved_show_state_ == ui::SHOW_STATE_MAXIMIZED && !IsFullscreen()) || |
+ IsMaximized()) && |
+ !initial_restored_bounds_.IsEmpty()) { |
native_widget_->ShowMaximizedWithBounds(initial_restored_bounds_); |
} else { |
ui::WindowShowState show_state = |
- IsFullscreen() ? ui::SHOW_STATE_FULLSCREEN : |
- IsMinimized() ? ui::SHOW_STATE_MINIMIZED : saved_show_state_; |
+ IsFullscreen() |
+ ? ui::SHOW_STATE_FULLSCREEN |
+ : (IsMaximized() ? ui::SHOW_STATE_MAXIMIZED |
+ : (IsMinimized() ? ui::SHOW_STATE_MINIMIZED |
+ : saved_show_state_)); |
native_widget_->ShowWithWindowState(show_state); |
} |
// |saved_show_state_| only applies the first time the window is shown. |
@@ -1453,6 +1456,8 @@ void Widget::SetInitialBounds(const gfx::Rect& bounds) { |
native_widget_->CenterWindow(non_client_view_->GetPreferredSize()); |
} else { |
// Use the supplied initial bounds. |
+ if (IsMaximized()) |
+ initial_restored_bounds_ = bounds; |
SetBoundsConstrained(bounds); |
} |
} |