| Index: chrome/browser/ui/views/task_manager_view.cc
|
| diff --git a/chrome/browser/ui/views/task_manager_view.cc b/chrome/browser/ui/views/task_manager_view.cc
|
| index f59a3f18ad5b17e9baa64005a40dcf3d751e2fa6..e957da8a853724ce1b6c0e976202f3c2e1c00683 100644
|
| --- a/chrome/browser/ui/views/task_manager_view.cc
|
| +++ b/chrome/browser/ui/views/task_manager_view.cc
|
| @@ -253,22 +253,19 @@ void TaskManagerView::OnKeyDown(ui::KeyboardCode keycode) {
|
| void TaskManagerView::ShowContextMenuForView(views::View* source,
|
| const gfx::Point& point,
|
| ui::MenuSourceType source_type) {
|
| - ui::SimpleMenuModel menu_model(this);
|
| + menu_model_.reset(new ui::SimpleMenuModel(this));
|
|
|
| for (const auto& table_column : columns_) {
|
| - menu_model.AddCheckItem(table_column.id,
|
| - l10n_util::GetStringUTF16(table_column.id));
|
| + menu_model_->AddCheckItem(table_column.id,
|
| + l10n_util::GetStringUTF16(table_column.id));
|
| }
|
|
|
| - menu_runner_.reset(
|
| - new views::MenuRunner(&menu_model, views::MenuRunner::CONTEXT_MENU));
|
| + menu_runner_.reset(new views::MenuRunner(
|
| + menu_model_.get(),
|
| + views::MenuRunner::CONTEXT_MENU | views::MenuRunner::ASYNC));
|
|
|
| - if (menu_runner_->RunMenuAt(GetWidget(), nullptr,
|
| - gfx::Rect(point, gfx::Size()),
|
| - views::MENU_ANCHOR_TOPLEFT,
|
| - source_type) == views::MenuRunner::MENU_DELETED) {
|
| - return;
|
| - }
|
| + menu_runner_->RunMenuAt(GetWidget(), nullptr, gfx::Rect(point, gfx::Size()),
|
| + views::MENU_ANCHOR_TOPLEFT, source_type);
|
| }
|
|
|
| bool TaskManagerView::IsCommandIdChecked(int id) const {
|
| @@ -283,6 +280,11 @@ void TaskManagerView::ExecuteCommand(int id, int event_flags) {
|
| table_model_->ToggleColumnVisibility(id);
|
| }
|
|
|
| +void TaskManagerView::MenuClosed(ui::SimpleMenuModel* source) {
|
| + menu_model_.reset();
|
| + menu_runner_.reset();
|
| +}
|
| +
|
| TaskManagerView::TaskManagerView()
|
| : tab_table_(nullptr),
|
| tab_table_parent_(nullptr),
|
|
|