Don't destroy menu delegate until OnMenuClosed fires
This commit is contained in:
parent
ad33e569d6
commit
9945fc5148
3 changed files with 10 additions and 2 deletions
|
@ -153,8 +153,9 @@ void MenuBar::OnMenuButtonClicked(views::MenuButton* source,
|
|||
return;
|
||||
}
|
||||
|
||||
MenuDelegate menu_delegate(this);
|
||||
menu_delegate.RunMenu(menu_model_->GetSubmenuModelAt(id), source);
|
||||
// Deleted in MenuDelegate::OnMenuClosed
|
||||
MenuDelegate* menu_delegate = new MenuDelegate(this);
|
||||
menu_delegate->RunMenu(menu_model_->GetSubmenuModelAt(id), source);
|
||||
}
|
||||
|
||||
void MenuBar::OnNativeThemeChanged(const ui::NativeTheme* theme) {
|
||||
|
|
|
@ -95,6 +95,11 @@ void MenuDelegate::WillHideMenu(views::MenuItemView* menu) {
|
|||
adapter_->WillHideMenu(menu);
|
||||
}
|
||||
|
||||
void MenuDelegate::OnMenuClosed(views::MenuItemView* menu,
|
||||
views::MenuRunner::RunResult result) {
|
||||
delete this;
|
||||
}
|
||||
|
||||
views::MenuItemView* MenuDelegate::GetSiblingMenu(
|
||||
views::MenuItemView* menu,
|
||||
const gfx::Point& screen_point,
|
||||
|
|
|
@ -40,6 +40,8 @@ class MenuDelegate : public views::MenuDelegate {
|
|||
void SelectionChanged(views::MenuItemView* menu) override;
|
||||
void WillShowMenu(views::MenuItemView* menu) override;
|
||||
void WillHideMenu(views::MenuItemView* menu) override;
|
||||
void OnMenuClosed(views::MenuItemView* menu,
|
||||
views::MenuRunner::RunResult result) override;
|
||||
views::MenuItemView* GetSiblingMenu(
|
||||
views::MenuItemView* menu,
|
||||
const gfx::Point& screen_point,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue