| Index: views/controls/menu/submenu_view.cc
|
| diff --git a/views/controls/menu/submenu_view.cc b/views/controls/menu/submenu_view.cc
|
| index 5664a8d32c6d6167f50bc56fdbce76eb3b6690b3..a68568d36cce16ef9bdb395b76fc7a9e2341aee1 100644
|
| --- a/views/controls/menu/submenu_view.cc
|
| +++ b/views/controls/menu/submenu_view.cc
|
| @@ -38,7 +38,8 @@ SubmenuView::SubmenuView(MenuItemView* parent)
|
| drop_position_(MenuDelegate::DROP_NONE),
|
| scroll_view_container_(NULL),
|
| max_accelerator_width_(0),
|
| - minimum_preferred_width_(0) {
|
| + minimum_preferred_width_(0),
|
| + resize_open_menu_(false) {
|
| DCHECK(parent);
|
| // We'll delete ourselves, otherwise the ScrollView would delete us on close.
|
| set_parent_owned(false);
|
| @@ -72,6 +73,20 @@ MenuItemView* SubmenuView::GetMenuItemAt(int index) {
|
| return NULL;
|
| }
|
|
|
| +void SubmenuView::ChildPreferredSizeChanged(View* child) {
|
| + if (!resize_open_menu_)
|
| + return;
|
| +
|
| + MenuItemView *item = GetMenuItem();
|
| + MenuController* controller = item->GetMenuController();
|
| +
|
| + if (controller) {
|
| + bool dir;
|
| + gfx::Rect bounds = controller->CalculateMenuBounds(item, false, &dir);
|
| + Reposition(bounds);
|
| + }
|
| +}
|
| +
|
| void SubmenuView::Layout() {
|
| // We're in a ScrollView, and need to set our width/height ourselves.
|
| if (!parent())
|
|
|