Chromium Code Reviews| Index: ui/views/widget/widget.cc |
| diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
| index 6873cdef533fd482cec2b6a5d2a34a1692fb5bcb..a03ba7ba655269a203168184f27f2b2095be95d1 100644 |
| --- a/ui/views/widget/widget.cc |
| +++ b/ui/views/widget/widget.cc |
| @@ -631,15 +631,12 @@ 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_; |
| - native_widget_->ShowWithWindowState(show_state); |
| + ShowWithCurrentState(); |
| } |
| // |saved_show_state_| only applies the first time the window is shown. |
| // If we don't reset the value the window may be shown maximized every time |
| @@ -647,7 +644,7 @@ void Widget::Show() { |
| saved_show_state_ = ui::SHOW_STATE_NORMAL; |
| } else { |
| CanActivate() |
| - ? native_widget_->Show() |
| + ? ShowWithCurrentState() |
|
oshima
2015/12/01 23:00:06
This is necessary to honor show_state in the widge
|
| : native_widget_->ShowWithWindowState(ui::SHOW_STATE_INACTIVE); |
| } |
| } |
| @@ -1453,6 +1450,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); |
| } |
| } |
| @@ -1500,6 +1499,16 @@ bool Widget::GetSavedWindowPlacement(gfx::Rect* bounds, |
| return false; |
| } |
| +void Widget::ShowWithCurrentState() { |
| + ui::WindowShowState 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); |
| +} |
| + |
| namespace internal { |
| //////////////////////////////////////////////////////////////////////////////// |