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

Unified Diff: chrome/browser/ui/views/toolbar/toolbar_view.cc

Issue 413323002: Resubmit: Open the WrenchMenu on mouseover when dragging a browser action (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Created 6 years, 5 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/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 cfebca7c802c0b01693f7a9515ff14d462520b90..ae496b6aa1c0565ace60b32687ffa3c10a5df16b 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -341,6 +341,37 @@ void ToolbarView::ShowBrowserActionPopup(
browser_actions_->ShowPopup(extension, true);
}
+void ToolbarView::ShowAppMenu(bool for_drop) {
+ if (wrench_menu_.get() && wrench_menu_->IsShowing())
+ return;
+
+ int run_flags = 0;
+ bool use_new_menu = false;
+ // TODO: remove this.
+#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
+ if (GetNativeTheme() == ui::NativeThemeAura::instance()) {
+ use_new_menu = true;
+ run_flags |= WrenchMenu::SUPPORTS_NEW_SEPARATORS | WrenchMenu::USE_NEW_MENU;
+ }
+#endif
+
+ if (keyboard::KeyboardController::GetInstance() &&
+ keyboard::KeyboardController::GetInstance()->keyboard_visible()) {
+ keyboard::KeyboardController::GetInstance()->HideKeyboard(
+ keyboard::KeyboardController::HIDE_REASON_AUTOMATIC);
+ }
+
+ if (for_drop)
+ run_flags |= WrenchMenu::FOR_DROP;
+ wrench_menu_.reset(new WrenchMenu(browser_, run_flags));
+ 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_;
}
@@ -375,30 +406,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.
}
////////////////////////////////////////////////////////////////////////////////

Powered by Google App Engine
This is Rietveld 408576698