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 8954e57f39e4dbb41c8799e48962fe1a5320cf57..5a8d2e935e3a31faf2d2e17c87893d454bdfe056 100644 |
--- a/ash/wm/panels/panel_layout_manager.cc |
+++ b/ash/wm/panels/panel_layout_manager.cc |
@@ -27,6 +27,7 @@ |
#include "ui/aura/client/focus_client.h" |
#include "ui/aura/client/window_tree_client.h" |
#include "ui/aura/window.h" |
+#include "ui/aura/window_delegate.h" |
#include "ui/aura/window_event_dispatcher.h" |
#include "ui/aura/window_tracker.h" |
#include "ui/compositor/scoped_layer_animation_settings.h" |
@@ -433,6 +434,12 @@ void PanelLayoutManager::SetChildBounds(aura::Window* child, |
panel_windows_.insert(new_position, dragged_panel_info); |
} |
} |
+ // Respect the minimum size of the window. |
+ if (child->delegate()) { |
+ const gfx::Size& min_size = child->delegate()->GetMinimumSize(); |
+ bounds.set_width(std::max(min_size.width(), bounds.width())); |
+ bounds.set_height(std::max(min_size.height(), bounds.height())); |
+ } |
SetChildBoundsDirect(child, bounds); |
Relayout(); |