| Index: ash/wm/panels/panel_layout_manager.cc
|
| diff --git a/ash/wm/panels/panel_layout_manager.cc b/ash/wm/panels/panel_layout_manager.cc
|
| index bf69c2c06d349518f2533258192adcfcf38e40b6..d731f8a0f966b313b228b0e144e4b256dc744a72 100644
|
| --- a/ash/wm/panels/panel_layout_manager.cc
|
| +++ b/ash/wm/panels/panel_layout_manager.cc
|
| @@ -487,22 +487,27 @@ void PanelLayoutManager::OnWindowPropertyChanged(aura::Window* window,
|
| void PanelLayoutManager::OnPostWindowStateTypeChange(
|
| wm::WindowState* window_state,
|
| wm::WindowStateType old_type) {
|
| - // If the shelf is currently hidden then windows will not actually be shown
|
| - // but the set to restore when the shelf becomes visible is updated.
|
| - if (restore_windows_on_shelf_visible_) {
|
| - if (window_state->IsMinimized()) {
|
| - MinimizePanel(window_state->window());
|
| - restore_windows_on_shelf_visible_->Remove(window_state->window());
|
| - } else {
|
| - restore_windows_on_shelf_visible_->Add(window_state->window());
|
| + aura::Window* window = window_state->window();
|
| + if (window_state->IsDocked()) {
|
| + wm::DockWindow(window);
|
| + } else {
|
| + // If the shelf is currently hidden then windows will not actually be shown
|
| + // but the set to restore when the shelf becomes visible is updated.
|
| + if (restore_windows_on_shelf_visible_) {
|
| + if (window_state->IsMinimized()) {
|
| + MinimizePanel(window);
|
| + restore_windows_on_shelf_visible_->Remove(window);
|
| + } else {
|
| + restore_windows_on_shelf_visible_->Add(window);
|
| + }
|
| + return;
|
| }
|
| - return;
|
| - }
|
|
|
| - if (window_state->IsMinimized())
|
| - MinimizePanel(window_state->window());
|
| - else
|
| - RestorePanel(window_state->window());
|
| + if (window_state->IsMinimized())
|
| + MinimizePanel(window);
|
| + else
|
| + RestorePanel(window);
|
| + }
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|