| Index: chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
|
| diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
|
| index e8a01e2c702ba00aa8a543baa18238ff35e56cb9..49e4ec823d74ddfe9550a889f21684fe2974ece0 100644
|
| --- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
|
| +++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
|
| @@ -7,6 +7,7 @@
|
| #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 "chrome/browser/ui/views/toolbar/wrench_menu.h"
|
| #include "ui/views/controls/menu/menu_item_view.h"
|
|
|
| namespace {
|
| @@ -18,15 +19,28 @@ const int kVerticalPadding = 8;
|
|
|
| } // namespace
|
|
|
| -ExtensionToolbarMenuView::ExtensionToolbarMenuView(Browser* browser)
|
| - : browser_(browser) {
|
| - BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
|
| +ExtensionToolbarMenuView::ExtensionToolbarMenuView(Browser* browser,
|
| + WrenchMenu* wrench_menu)
|
| + : browser_(browser),
|
| + wrench_menu_(wrench_menu),
|
| + container_(NULL),
|
| + browser_actions_container_observer_(this) {
|
| + BrowserActionsContainer* main =
|
| + BrowserView::GetBrowserViewForBrowser(browser_)
|
| + ->toolbar()->browser_actions();
|
| container_ = new BrowserActionsContainer(
|
| browser_,
|
| NULL, // No owner view, means no extra keybindings are registered.
|
| - browser_view->GetToolbarView()->browser_actions());
|
| + main);
|
| container_->Init();
|
| AddChildView(container_);
|
| +
|
| + // If we were opened for a drop command, we have to wait for the drop to
|
| + // finish so we can close the wrench menu.
|
| + if (wrench_menu_->for_drop()) {
|
| + browser_actions_container_observer_.Add(container_);
|
| + browser_actions_container_observer_.Add(main);
|
| + }
|
| }
|
|
|
| ExtensionToolbarMenuView::~ExtensionToolbarMenuView() {
|
| @@ -48,3 +62,8 @@ void ExtensionToolbarMenuView::Layout() {
|
| SetBounds(views::MenuItemView::label_start(), 0, sz.width(), height);
|
| container_->SetBounds(0, 0, sz.width(), height);
|
| }
|
| +
|
| +void ExtensionToolbarMenuView::OnBrowserActionDragDone() {
|
| + DCHECK(wrench_menu_->for_drop());
|
| + wrench_menu_->CloseMenu();
|
| +}
|
|
|