Chromium Code Reviews| 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..f73044fbd1c54f2d3cfc4e0978c7617c1b04f92c 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,13 @@ void TaskManagerView::ExecuteCommand(int id, int event_flags) { |
| table_model_->ToggleColumnVisibility(id); |
| } |
| +void TaskManagerView::MenuClosed(ui::SimpleMenuModel* source) { |
| + if (source != menu_model_.get()) |
|
sky
2016/08/16 22:33:06
Is this check necessary?
jonross
2016/08/16 23:01:49
It does not appear to be actually needed. You can'
|
| + return; |
| + menu_model_.reset(); |
| + menu_runner_.reset(); |
| +} |
| + |
| TaskManagerView::TaskManagerView() |
| : tab_table_(nullptr), |
| tab_table_parent_(nullptr), |