Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(391)

Unified Diff: chrome/browser/chromeos/frame/browser_view.cc

Issue 7720012: Moves ownership of MenuItemView to MenuRunner as well as responbility (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)));
}

Powered by Google App Engine
This is Rietveld 408576698