Index: chrome/browser/ui/views/browser_actions_container.cc |
diff --git a/chrome/browser/ui/views/browser_actions_container.cc b/chrome/browser/ui/views/browser_actions_container.cc |
index a8a369eb18ff6270e35d117616767e8f016bb3a6..75589b4450325da3e42741aaacef936154a3f0e0 100644 |
--- a/chrome/browser/ui/views/browser_actions_container.cc |
+++ b/chrome/browser/ui/views/browser_actions_container.cc |
@@ -46,6 +46,7 @@ |
#include "views/controls/button/text_button.h" |
#include "views/controls/menu/menu_item_view.h" |
#include "views/controls/menu/menu_model_adapter.h" |
+#include "views/controls/menu/menu_runner.h" |
#include "views/drag_utils.h" |
#include "views/metrics.h" |
@@ -255,14 +256,15 @@ void BrowserActionButton::ShowContextMenu(const gfx::Point& p, |
scoped_refptr<ExtensionContextMenuModel> context_menu_contents_( |
new ExtensionContextMenuModel(extension(), panel_->browser(), panel_)); |
views::MenuModelAdapter menu_model_adapter(context_menu_contents_.get()); |
- views::MenuItemView menu(&menu_model_adapter); |
- menu_model_adapter.BuildMenu(&menu); |
+ views::MenuRunner menu_runner(menu_model_adapter.CreateMenu()); |
- context_menu_ = &menu; |
+ context_menu_ = menu_runner.GetMenu(); |
gfx::Point screen_loc; |
views::View::ConvertPointToScreen(this, &screen_loc); |
- context_menu_->RunMenuAt(GetWidget(), NULL, gfx::Rect(screen_loc, size()), |
- views::MenuItemView::TOPLEFT, true); |
+ if (menu_runner.RunMenuAt(GetWidget(), NULL, gfx::Rect(screen_loc, size()), |
+ views::MenuItemView::TOPLEFT, views::MenuRunner::HAS_MNEMONICS) == |
+ views::MenuRunner::MENU_DELETED) |
+ return; |
SetButtonNotPushed(); |
context_menu_ = NULL; |