summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrhashimoto@chromium.org <rhashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 19:13:42 +0000
committerrhashimoto@chromium.org <rhashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 19:13:42 +0000
commitd274891c36024c04b20ebe3f392e91ac2aa5b26b (patch)
tree1b2cff6b16121185854333ecbadd4ea67d9e92cc
parent0ae8c214069fc8668669edcf4aa1bcb16ebe8205 (diff)
downloadchromium_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.cc5
-rw-r--r--views/controls/combobox/native_combobox_views.h1
-rw-r--r--views/controls/menu/submenu_view.cc2
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());
}