Index: chrome/browser/ui/views/frame/browser_frame_ash.cc |
diff --git a/chrome/browser/ui/views/frame/browser_frame_ash.cc b/chrome/browser/ui/views/frame/browser_frame_ash.cc |
index b48a51bc5e8f76a4c0a36e940c6c4e759c38d7a7..22f2a99747e97210997fafd42e9af4196c9caabd 100644 |
--- a/chrome/browser/ui/views/frame/browser_frame_ash.cc |
+++ b/chrome/browser/ui/views/frame/browser_frame_ash.cc |
@@ -121,6 +121,20 @@ void BrowserFrameAsh::GetWindowPlacement( |
*show_state != ui::SHOW_STATE_MINIMIZED) { |
*show_state = ui::SHOW_STATE_NORMAL; |
} |
+ |
+ if (ash::wm::GetWindowState(GetNativeWindow())->IsDocked()) { |
+ if (browser_view_->browser()->is_app()) { |
+ // Only web app windows (not tabbed browser windows) persist docked state. |
+ *show_state = ui::SHOW_STATE_DOCKED; |
+ } else { |
+ // Restore original restore bounds for tabbed browser windows ignoring |
+ // the docked origin. |
+ gfx::Rect* restore_bounds = GetWidget()->GetNativeWindow()->GetProperty( |
+ aura::client::kRestoreBoundsKey); |
+ if (restore_bounds) |
+ *bounds = *restore_bounds; |
+ } |
+ } |
} |
//////////////////////////////////////////////////////////////////////////////// |