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

Unified Diff: ui/message_center/views/notifier_settings_view.cc

Issue 2277833003: Turn Message Center Menus Async (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « ui/message_center/views/notifier_settings_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « ui/message_center/views/notifier_settings_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698