| Index: chrome/browser/chromeos/frame/browser_view.cc
|
| diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc
|
| index 1721a93a0cd6b4644039bc27f2e4a4051b0b9ce8..c25ccbd2a759c6f2e557784014a9eddba8e015cf 100644
|
| --- a/chrome/browser/chromeos/frame/browser_view.cc
|
| +++ b/chrome/browser/chromeos/frame/browser_view.cc
|
| @@ -41,6 +41,7 @@
|
| #include "views/controls/button/image_button.h"
|
| #include "views/controls/menu/menu_delegate.h"
|
| #include "views/controls/menu/menu_item_view.h"
|
| +#include "views/controls/menu/menu_runner.h"
|
| #include "views/widget/root_view.h"
|
| #include "views/widget/widget.h"
|
| #include "views/window/hit_test.h"
|
| @@ -511,10 +512,11 @@ void BrowserView::ShowContextMenuForView(views::View* source,
|
| if (hit_test == HTCAPTION || hit_test == HTNOWHERE) {
|
| // rebuild menu so it reflects current application state
|
| InitSystemMenu();
|
| - system_menu_->RunMenuAt(source->GetWidget(), NULL,
|
| - gfx::Rect(p, gfx::Size(0,0)),
|
| - views::MenuItemView::TOPLEFT,
|
| - true);
|
| + if (system_menu_runner_->RunMenuAt(source->GetWidget(), NULL,
|
| + gfx::Rect(p, gfx::Size(0,0)), views::MenuItemView::TOPLEFT,
|
| + views::MenuRunner::HAS_MNEMONICS) ==
|
| + views::MenuRunner::MENU_DELETED)
|
| + return;
|
| }
|
| }
|
|
|
| @@ -620,14 +622,16 @@ void BrowserView::GetAccessiblePanes(
|
| // BrowserView private.
|
|
|
| void BrowserView::InitSystemMenu() {
|
| - system_menu_.reset(new views::MenuItemView(system_menu_delegate_.get()));
|
| - system_menu_->AppendDelegateMenuItem(IDC_RESTORE_TAB);
|
| -
|
| - system_menu_->AppendMenuItemWithLabel(
|
| + views::MenuItemView* menu =
|
| + new views::MenuItemView(system_menu_delegate_.get());
|
| + // MenuRunner takes ownership of menu.
|
| + system_menu_runner_.reset(new views::MenuRunner(menu));
|
| + menu->AppendDelegateMenuItem(IDC_RESTORE_TAB);
|
| + menu->AppendMenuItemWithLabel(
|
| IDC_NEW_TAB,
|
| UTF16ToWide(l10n_util::GetStringUTF16(IDS_NEW_TAB)));
|
| - system_menu_->AppendSeparator();
|
| - system_menu_->AppendMenuItemWithLabel(
|
| + menu->AppendSeparator();
|
| + menu->AppendMenuItemWithLabel(
|
| IDC_TASK_MANAGER,
|
| UTF16ToWide(l10n_util::GetStringUTF16(IDS_TASK_MANAGER)));
|
| }
|
|
|