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

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

Issue 324393002: Extension Toolbar redesign, part 1 (overflow) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Linux width issue Created 6 years, 6 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/browser_action_view.cc
diff --git a/chrome/browser/ui/views/toolbar/browser_action_view.cc b/chrome/browser/ui/views/toolbar/browser_action_view.cc
index e277c3cd82b50b2bc4c6a84069a3181e0448c063..fa633b6a428883d0bcbddd814162d356eca24a6e 100644
--- a/chrome/browser/ui/views/toolbar/browser_action_view.cc
+++ b/chrome/browser/ui/views/toolbar/browser_action_view.cc
@@ -16,6 +16,7 @@
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/view_ids.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "extensions/common/extension.h"
@@ -61,7 +62,7 @@ gfx::ImageSkia BrowserActionView::GetIconWithBadge() {
}
void BrowserActionView::Layout() {
- button_->SetBounds(0, y(), width(), height());
+ button_->SetBounds(0, 0, width(), height());
}
void BrowserActionView::GetAccessibleState(ui::AXViewState* state) {
@@ -175,20 +176,34 @@ void BrowserActionButton::ShowContextMenuForView(
SetButtonPushed();
// Reconstructs the menu every time because the menu's contents are dynamic.
- scoped_refptr<ExtensionContextMenuModel> context_menu_contents_(
+ scoped_refptr<ExtensionContextMenuModel> context_menu_contents(
new ExtensionContextMenuModel(extension(), browser_, delegate_));
- menu_runner_.reset(new views::MenuRunner(context_menu_contents_.get()));
+ menu_runner_.reset(new views::MenuRunner(context_menu_contents.get()));
context_menu_ = menu_runner_->GetMenu();
gfx::Point screen_loc;
views::View::ConvertPointToScreen(this, &screen_loc);
- if (menu_runner_->RunMenuAt(
- GetWidget(),
- NULL,
- gfx::Rect(screen_loc, size()),
- views::MENU_ANCHOR_TOPLEFT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
+
+ views::Widget* parent = NULL;
+ int run_types = views::MenuRunner::HAS_MNEMONICS |
+ views::MenuRunner::CONTEXT_MENU;
+ if (delegate_->ShownInsideMenu()) {
+ run_types |= views::MenuRunner::IS_NESTED;
+ // RunMenuAt expects a nested menu to be parented by the same widget as the
+ // already visible menu, in this case the wrench menu (hamburger).
Peter Kasting 2014/06/30 23:36:33 Nit: wrench menu (hamburger) -> Chrome menu (Chro
Finnur 2014/07/02 16:59:55 Done.
+ parent = BrowserView::GetBrowserViewForBrowser(browser_)->toolbar()
+ ->app_menu()
+ ->GetWidget();
+ } else {
+ parent = GetWidget();
+ }
+
+ if (menu_runner_->RunMenuAt(parent,
+ NULL,
+ gfx::Rect(screen_loc, size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ run_types) ==
views::MenuRunner::MENU_DELETED) {
return;
}

Powered by Google App Engine
This is Rietveld 408576698