Chromium Code Reviews| Index: chrome/browser/ui/panels/panel_manager.cc |
| diff --git a/chrome/browser/ui/panels/panel_manager.cc b/chrome/browser/ui/panels/panel_manager.cc |
| index c50a6dbbd9913c4583c3794132635af48705084d..960b9e84a9b89fb01cee525a2c7326fe0c87b277 100644 |
| --- a/chrome/browser/ui/panels/panel_manager.cc |
| +++ b/chrome/browser/ui/panels/panel_manager.cc |
| @@ -169,17 +169,31 @@ void PanelManager::EndDragging(bool cancelled) { |
| } |
| void PanelManager::OnPanelExpansionStateChanged(Panel* panel) { |
| - docked_strip_->OnPanelExpansionStateChanged(panel); |
| + // For panels outside of the docked strip changing state is a no-op. |
| + // But sicne this method may be called for panels in other strips |
|
jennb
2012/03/14 20:11:40
typo: sicne
|
| + // we need to check this condition. |
| + if (panel->panel_strip() == docked_strip_.get()) |
| + docked_strip_->OnPanelExpansionStateChanged(panel); |
| + |
| } |
| void PanelManager::OnWindowAutoResized(Panel* panel, |
| const gfx::Size& preferred_window_size) { |
| DCHECK(auto_sizing_enabled_); |
| - docked_strip_->ResizePanelWindow(panel, preferred_window_size); |
| + // Even though overflow panels are always minimized, we need |
| + // to keep track of their size to put them back into the |
| + // docked strip when they fit. So the docked panel strip manages |
| + // the size of panels for the overflow strip as well. |
| + if (panel->panel_strip() == overflow_strip_.get()) |
| + docked_strip_->ResizePanelWindow(panel, preferred_window_size); |
| + else |
| + panel->panel_strip()->ResizePanelWindow(panel, preferred_window_size); |
| } |
| void PanelManager::ResizePanel(Panel* panel, const gfx::Size& new_size) { |
| - docked_strip_->ResizePanelWindow(panel, new_size); |
| + // We are not supposed to resize panels in the overflow. |
|
jennb
2012/03/14 20:11:40
Overflow panels - same logic as for OnWindowAutoRe
|
| + DCHECK(panel->panel_strip() != overflow_strip_.get()); |
| + panel->panel_strip()->ResizePanelWindow(panel, new_size); |
| panel->SetAutoResizable(false); |
| } |