Index: ui/views/widget/widget.cc |
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
index 64f5541bb811e63f509079eb3d18a0249a2244ec..d4b16bb769a39863a114f6d8f2104972f99eeb83 100644 |
--- a/ui/views/widget/widget.cc |
+++ b/ui/views/widget/widget.cc |
@@ -1127,17 +1127,17 @@ void Widget::OnNativeWidgetSizeChanged(const gfx::Size& new_size) { |
focused_view->GetInputMethod()->OnCaretBoundsChanged(focused_view); |
} |
} |
- // Size changed notifications can fire prior to full initialization |
- // i.e. during session restore. Avoid saving session state during these |
- // startup procedures. |
- if (native_widget_initialized_) |
- SaveWindowPlacement(); |
+ SaveWindowPlacementIfInitialized(); |
FOR_EACH_OBSERVER(WidgetObserver, observers_, OnWidgetBoundsChanged( |
this, |
GetWindowBoundsInScreen())); |
} |
+void Widget::OnNativeWidgetWindowShowStateChanged() { |
+ SaveWindowPlacementIfInitialized(); |
+} |
+ |
void Widget::OnNativeWidgetBeginUserBoundsChange() { |
widget_delegate_->OnWindowBeginUserBoundsChange(); |
} |
@@ -1426,6 +1426,11 @@ void Widget::SaveWindowPlacement() { |
widget_delegate_->SaveWindowPlacement(bounds, show_state); |
} |
+void Widget::SaveWindowPlacementIfInitialized() { |
+ if (native_widget_initialized_) |
+ SaveWindowPlacement(); |
+} |
+ |
void Widget::SetInitialBounds(const gfx::Rect& bounds) { |
if (!non_client_view_) |
return; |