diff options
author | rhashimoto@chromium.org <rhashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-11 19:13:42 +0000 |
---|---|---|
committer | rhashimoto@chromium.org <rhashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-11 19:13:42 +0000 |
commit | d274891c36024c04b20ebe3f392e91ac2aa5b26b (patch) | |
tree | 1b2cff6b16121185854333ecbadd4ea67d9e92cc | |
parent | 0ae8c214069fc8668669edcf4aa1bcb16ebe8205 (diff) | |
download | chromium_src-d274891c36024c04b20ebe3f392e91ac2aa5b26b.zip chromium_src-d274891c36024c04b20ebe3f392e91ac2aa5b26b.tar.gz chromium_src-d274891c36024c04b20ebe3f392e91ac2aa5b26b.tar.bz2 |
Set minimum width on menu for NativeComboboxViews.
The combobox menu is forced to be at least as wide as the combobox itself.
Besides the addition to native_combobox_views.cc, an edit was needed to views::SubmenuView. The minimum preferred width must account for the border (specified in SubmenuView, applied in MenuScrollViewContainer) to make the ultimate menu width match the size requested by the combobox.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7002004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85010 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | views/controls/combobox/native_combobox_views.cc | 5 | ||||
-rw-r--r-- | views/controls/combobox/native_combobox_views.h | 1 | ||||
-rw-r--r-- | views/controls/menu/submenu_view.cc | 2 |
3 files changed, 6 insertions, 2 deletions
diff --git a/views/controls/combobox/native_combobox_views.cc b/views/controls/combobox/native_combobox_views.cc index fb16d84..624947b 100644 --- a/views/controls/combobox/native_combobox_views.cc +++ b/views/controls/combobox/native_combobox_views.cc @@ -18,6 +18,7 @@ #include "views/border.h" #include "views/controls/combobox/combobox.h" #include "views/controls/focusable_border.h" +#include "views/controls/menu/submenu_view.h" #include "views/widget/root_view.h" #include "views/window/window.h" @@ -365,6 +366,10 @@ void NativeComboboxViews::ShowDropDownMenu() { if (!dropdown_list_menu_.get()) UpdateFromModel(); + // Extend the menu to the width of the combobox. + SubmenuView* submenu = dropdown_list_menu_->CreateSubmenu(); + submenu->set_minimum_preferred_width(size().width()); + gfx::Rect lb = GetLocalBounds(); gfx::Point menu_position(lb.origin()); View::ConvertPointToScreen(this, &menu_position); diff --git a/views/controls/combobox/native_combobox_views.h b/views/controls/combobox/native_combobox_views.h index 3a19ab8..114837c 100644 --- a/views/controls/combobox/native_combobox_views.h +++ b/views/controls/combobox/native_combobox_views.h @@ -18,7 +18,6 @@ class Font; namespace views { class KeyEvent; -class Menu2; class FocusableBorder; // A views/skia only implementation of NativeComboboxWrapper. diff --git a/views/controls/menu/submenu_view.cc b/views/controls/menu/submenu_view.cc index 1f568e6..57ab1e3 100644 --- a/views/controls/menu/submenu_view.cc +++ b/views/controls/menu/submenu_view.cc @@ -126,7 +126,7 @@ gfx::Size SubmenuView::GetPreferredSize() { gfx::Insets insets = GetInsets(); return gfx::Size( std::max(max_width + max_accelerator_width_ + insets.width(), - minimum_preferred_width_), + minimum_preferred_width_ - 2 * kSubmenuBorderSize), height + insets.height()); } |