Index: chrome/browser/ui/views/toolbar/toolbar_view.cc |
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc |
index e9aacdfc5bc9fdede452b6aa3ac6d5443e1a478e..8730e2b87b132e466abbebdbb2b7cbd655421cab 100644 |
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc |
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc |
@@ -350,6 +350,37 @@ void ToolbarView::ShowBrowserActionPopup( |
browser_actions_->ShowPopup(extension, true); |
} |
+void ToolbarView::ShowAppMenu(bool for_drop) { |
+ if (wrench_menu_.get() && wrench_menu_->IsShowing()) |
+ return; |
+ |
+ bool use_new_menu = false; |
+ bool supports_new_separators = false; |
+ // TODO: remove this. |
+#if !defined(OS_LINUX) || defined(OS_CHROMEOS) |
+ supports_new_separators = |
+ GetNativeTheme() == ui::NativeThemeAura::instance(); |
+ use_new_menu = supports_new_separators; |
+#endif |
+ |
+ if (keyboard::KeyboardController::GetInstance() && |
+ keyboard::KeyboardController::GetInstance()->keyboard_visible()) { |
+ keyboard::KeyboardController::GetInstance()->HideKeyboard( |
+ keyboard::KeyboardController::HIDE_REASON_AUTOMATIC); |
+ } |
+ |
+ wrench_menu_.reset(new WrenchMenu(browser_, |
+ use_new_menu, |
+ supports_new_separators, |
+ for_drop)); |
+ wrench_menu_model_.reset(new WrenchMenuModel(this, browser_, use_new_menu)); |
+ wrench_menu_->Init(wrench_menu_model_.get()); |
+ |
+ FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened()); |
+ |
+ wrench_menu_->RunMenu(app_menu_); |
+} |
+ |
views::MenuButton* ToolbarView::app_menu() const { |
return app_menu_; |
} |
@@ -384,30 +415,7 @@ void ToolbarView::OnMenuButtonClicked(views::View* source, |
const gfx::Point& point) { |
TRACE_EVENT0("views", "ToolbarView::OnMenuButtonClicked"); |
DCHECK_EQ(VIEW_ID_APP_MENU, source->id()); |
- |
- bool use_new_menu = false; |
- bool supports_new_separators = false; |
- // TODO: remove this. |
-#if !defined(OS_LINUX) || defined(OS_CHROMEOS) |
- supports_new_separators = |
- GetNativeTheme() == ui::NativeThemeAura::instance(); |
- use_new_menu = supports_new_separators; |
-#endif |
- |
- if (keyboard::KeyboardController::GetInstance() && |
- keyboard::KeyboardController::GetInstance()->keyboard_visible()) { |
- keyboard::KeyboardController::GetInstance()->HideKeyboard( |
- keyboard::KeyboardController::HIDE_REASON_AUTOMATIC); |
- } |
- |
- wrench_menu_.reset(new WrenchMenu(browser_, use_new_menu, |
- supports_new_separators)); |
- wrench_menu_model_.reset(new WrenchMenuModel(this, browser_, use_new_menu)); |
- wrench_menu_->Init(wrench_menu_model_.get()); |
- |
- FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened()); |
- |
- wrench_menu_->RunMenu(app_menu_); |
+ ShowAppMenu(false); // Not for drop. |
} |
//////////////////////////////////////////////////////////////////////////////// |