Implement Menu.closePopup on Windows/Linux
This commit is contained in:
parent
0a5ccdccb4
commit
91d1af053f
2 changed files with 10 additions and 11 deletions
|
@ -49,11 +49,12 @@ void MenuViews::PopupAt(
|
|||
atom::UnresponsiveSuppressor suppressor;
|
||||
|
||||
// Show the menu.
|
||||
menu_runner_.reset(new MenuRunner(
|
||||
model(),
|
||||
flags,
|
||||
base::Bind(&MenuViews::OnMenuClosed, weak_factory_.GetWeakPtr())));
|
||||
ignore_result(menu_runner_->RunMenuAt(
|
||||
int32_t window_id = window->ID();
|
||||
auto close_callback = base::Bind(
|
||||
&MenuViews::ClosePopupAt, weak_factory_.GetWeakPtr(), window_id);
|
||||
menu_runners_[window_id] = std::unique_ptr<MenuRunner>(new MenuRunner(
|
||||
model(), flags, close_callback));
|
||||
ignore_result(menu_runners_[window_id]->RunMenuAt(
|
||||
static_cast<NativeWindowViews*>(window->window())->widget(),
|
||||
NULL,
|
||||
gfx::Rect(location, gfx::Size()),
|
||||
|
@ -61,10 +62,6 @@ void MenuViews::PopupAt(
|
|||
ui::MENU_SOURCE_MOUSE));
|
||||
}
|
||||
|
||||
void MenuViews::OnMenuClosed() {
|
||||
menu_runner_.reset();
|
||||
}
|
||||
|
||||
// static
|
||||
mate::WrappableBase* Menu::New(mate::Arguments* args) {
|
||||
return new MenuViews(args->isolate(), args->GetThis());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue