diff options
-rw-r--r-- | views/controls/menu/submenu_view.cc | 9 | ||||
-rw-r--r-- | views/controls/menu/submenu_view.h | 9 |
2 files changed, 15 insertions, 3 deletions
diff --git a/views/controls/menu/submenu_view.cc b/views/controls/menu/submenu_view.cc index cb72f93..1f568e6 100644 --- a/views/controls/menu/submenu_view.cc +++ b/views/controls/menu/submenu_view.cc @@ -37,7 +37,8 @@ SubmenuView::SubmenuView(MenuItemView* parent) drop_item_(NULL), drop_position_(MenuDelegate::DROP_NONE), scroll_view_container_(NULL), - max_accelerator_width_(0) { + max_accelerator_width_(0), + minimum_preferred_width_(0) { DCHECK(parent); // We'll delete ourselves, otherwise the ScrollView would delete us on close. set_parent_owned(false); @@ -123,8 +124,10 @@ gfx::Size SubmenuView::GetPreferredSize() { MenuConfig::instance().label_to_accelerator_padding; } gfx::Insets insets = GetInsets(); - return gfx::Size(max_width + max_accelerator_width_ + insets.width(), - height + insets.height()); + return gfx::Size( + std::max(max_width + max_accelerator_width_ + insets.width(), + minimum_preferred_width_), + height + insets.height()); } void SubmenuView::GetAccessibleState(ui::AccessibleViewState* state) { diff --git a/views/controls/menu/submenu_view.h b/views/controls/menu/submenu_view.h index bcc6aae..5325e33 100644 --- a/views/controls/menu/submenu_view.h +++ b/views/controls/menu/submenu_view.h @@ -130,6 +130,12 @@ class SubmenuView : public View { // children's children, only direct children. int max_accelerator_width() const { return max_accelerator_width_; } + // Minimum width of menu in pixels (default 0). This becomes the smallest + // width returned by GetPreferredSize(). + void set_minimum_preferred_width(int minimum_preferred_width) { + minimum_preferred_width_ = minimum_preferred_width; + } + // Padding around the edges of the submenu. static const int kSubmenuBorderSize; @@ -176,6 +182,9 @@ class SubmenuView : public View { // See description above getter. int max_accelerator_width_; + // Minimum width returned in GetPreferredSize(). + int minimum_preferred_width_; + DISALLOW_COPY_AND_ASSIGN(SubmenuView); }; |