| Index: ui/message_center/views/notifier_settings_view.cc
|
| diff --git a/ui/message_center/views/notifier_settings_view.cc b/ui/message_center/views/notifier_settings_view.cc
|
| index 10a8ab47507f69da9cffe1ef62ecd4ee47c5b9a2..c940163e04812645c974de00d8ebe76ce989b95e 100644
|
| --- a/ui/message_center/views/notifier_settings_view.cc
|
| +++ b/ui/message_center/views/notifier_settings_view.cc
|
| @@ -36,6 +36,7 @@
|
| #include "ui/views/controls/label.h"
|
| #include "ui/views/controls/link.h"
|
| #include "ui/views/controls/link_listener.h"
|
| +#include "ui/views/controls/menu/menu_model_adapter.h"
|
| #include "ui/views/controls/menu/menu_runner.h"
|
| #include "ui/views/controls/scroll_view.h"
|
| #include "ui/views/controls/scrollbar/overlay_scroll_bar.h"
|
| @@ -683,20 +684,28 @@ void NotifierSettingsView::OnMenuButtonClicked(views::MenuButton* source,
|
| const gfx::Point& point,
|
| const ui::Event* event) {
|
| notifier_group_menu_model_.reset(new NotifierGroupMenuModel(provider_));
|
| + notifier_group_menu_model_adapter_.reset(new views::MenuModelAdapter(
|
| + notifier_group_menu_model_.get(),
|
| + base::Bind(&NotifierSettingsView::OnMenuClosed, base::Unretained(this))));
|
| +
|
| notifier_group_menu_runner_.reset(new views::MenuRunner(
|
| - notifier_group_menu_model_.get(), views::MenuRunner::CONTEXT_MENU));
|
| + notifier_group_menu_model_adapter_->CreateMenu(),
|
| + views::MenuRunner::CONTEXT_MENU | views::MenuRunner::ASYNC));
|
| gfx::Rect menu_anchor = source->GetBoundsInScreen();
|
| menu_anchor.Inset(
|
| gfx::Insets(0, kMenuWhitespaceOffset, 0, kMenuWhitespaceOffset));
|
| - if (views::MenuRunner::MENU_DELETED ==
|
| - notifier_group_menu_runner_->RunMenuAt(GetWidget(),
|
| - notifier_group_selector_,
|
| - menu_anchor,
|
| - views::MENU_ANCHOR_BUBBLE_ABOVE,
|
| - ui::MENU_SOURCE_MOUSE))
|
| - return;
|
| + notifier_group_menu_runner_->RunMenuAt(
|
| + GetWidget(), notifier_group_selector_, menu_anchor,
|
| + views::MENU_ANCHOR_BUBBLE_ABOVE, ui::MENU_SOURCE_MOUSE);
|
| +}
|
| +
|
| +void NotifierSettingsView::OnMenuClosed() {
|
| MessageCenterView* center_view = static_cast<MessageCenterView*>(parent());
|
| center_view->OnSettingsChanged();
|
| +
|
| + notifier_group_menu_runner_.reset();
|
| + notifier_group_menu_model_adapter_.reset();
|
| + notifier_group_menu_model_.reset();
|
| }
|
|
|
| } // namespace message_center
|
|
|