Index: views/controls/menu/menu_item_view_win.cc |
diff --git a/views/controls/menu/menu_item_view_win.cc b/views/controls/menu/menu_item_view_win.cc |
index cb956cbee3c8636247acc71c006cf013b5aaa4d5..4a90c28c0268f7efc449dbe82c1770d3044491f4 100644 |
--- a/views/controls/menu/menu_item_view_win.cc |
+++ b/views/controls/menu/menu_item_view_win.cc |
@@ -22,7 +22,8 @@ namespace views { |
gfx::Size MenuItemView::GetPreferredSize() { |
const gfx::Font& font = MenuConfig::instance().font; |
return gfx::Size( |
- font.GetStringWidth(title_) + label_start_ + item_right_margin_, |
+ font.GetStringWidth(title_) + label_start_ + item_right_margin_ + |
+ GetChildPreferredWidth(), |
font.height() + GetBottomMargin() + GetTopMargin()); |
} |
@@ -30,7 +31,8 @@ void MenuItemView::Paint(gfx::Canvas* canvas, bool for_drag) { |
const MenuConfig& config = MenuConfig::instance(); |
bool render_selection = |
(!for_drag && IsSelected() && |
- parent_menu_item_->GetSubmenu()->GetShowSelection(this)); |
+ parent_menu_item_->GetSubmenu()->GetShowSelection(this) && |
+ GetChildViewCount() == 0); |
int state = render_selection ? MPI_HOT : |
(IsEnabled() ? MPI_NORMAL : MPI_DISABLED); |
HDC dc = canvas->beginPlatformPaint(); |
@@ -94,7 +96,8 @@ void MenuItemView::Paint(gfx::Canvas* canvas, bool for_drag) { |
NativeTheme::MENU, MENU_POPUPITEM, state, TMT_TEXTCOLOR, |
default_sys_color); |
int width = this->width() - item_right_margin_ - label_start_; |
- const gfx::Font& font = MenuConfig::instance().font; |
+ const gfx::Font& font = GetChildViewCount() > 0 ? |
+ MenuConfig::instance().font_with_controls : MenuConfig::instance().font; |
gfx::Rect text_bounds(label_start_, top_margin, width, font.height()); |
text_bounds.set_x(MirroredLeftPointForRect(text_bounds)); |
if (for_drag) { |