Remove the closed event of Menu
The callback of Menu.popup does more things, and there is actually no request for the closed event.
This commit is contained in:
parent
73d78d345a
commit
46330ac2a9
6 changed files with 1 additions and 50 deletions
|
@ -40,7 +40,6 @@ void Menu::AfterInit(v8::Isolate* isolate) {
|
||||||
delegate.Get("getAcceleratorForCommandId", &get_accelerator_);
|
delegate.Get("getAcceleratorForCommandId", &get_accelerator_);
|
||||||
delegate.Get("executeCommand", &execute_command_);
|
delegate.Get("executeCommand", &execute_command_);
|
||||||
delegate.Get("menuWillShow", &menu_will_show_);
|
delegate.Get("menuWillShow", &menu_will_show_);
|
||||||
delegate.Get("menuClosed", &menu_closed_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Menu::IsCommandIdChecked(int command_id) const {
|
bool Menu::IsCommandIdChecked(int command_id) const {
|
||||||
|
@ -76,10 +75,6 @@ void Menu::MenuWillShow(ui::SimpleMenuModel* source) {
|
||||||
menu_will_show_.Run();
|
menu_will_show_.Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::MenuClosed(ui::SimpleMenuModel* source) {
|
|
||||||
menu_closed_.Run();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Menu::InsertItemAt(
|
void Menu::InsertItemAt(
|
||||||
int index, int command_id, const base::string16& label) {
|
int index, int command_id, const base::string16& label) {
|
||||||
model_->InsertItemAt(index, command_id, label);
|
model_->InsertItemAt(index, command_id, label);
|
||||||
|
|
|
@ -52,7 +52,6 @@ class Menu : public mate::TrackableObject<Menu>,
|
||||||
ui::Accelerator* accelerator) const override;
|
ui::Accelerator* accelerator) const override;
|
||||||
void ExecuteCommand(int command_id, int event_flags) override;
|
void ExecuteCommand(int command_id, int event_flags) override;
|
||||||
void MenuWillShow(ui::SimpleMenuModel* source) override;
|
void MenuWillShow(ui::SimpleMenuModel* source) override;
|
||||||
void MenuClosed(ui::SimpleMenuModel* source) override;
|
|
||||||
|
|
||||||
virtual void PopupAt(Window* window, int x, int y, int positioning_item,
|
virtual void PopupAt(Window* window, int x, int y, int positioning_item,
|
||||||
const base::Closure& callback) = 0;
|
const base::Closure& callback) = 0;
|
||||||
|
@ -95,7 +94,6 @@ class Menu : public mate::TrackableObject<Menu>,
|
||||||
base::Callback<v8::Local<v8::Value>(int, bool)> get_accelerator_;
|
base::Callback<v8::Local<v8::Value>(int, bool)> get_accelerator_;
|
||||||
base::Callback<void(v8::Local<v8::Value>, int)> execute_command_;
|
base::Callback<void(v8::Local<v8::Value>, int)> execute_command_;
|
||||||
base::Callback<void()> menu_will_show_;
|
base::Callback<void()> menu_will_show_;
|
||||||
base::Callback<void()> menu_closed_;
|
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(Menu);
|
DISALLOW_COPY_AND_ASSIGN(Menu);
|
||||||
};
|
};
|
||||||
|
|
|
@ -115,13 +115,6 @@ can have a submenu.
|
||||||
Objects created with `new Menu` or returned by `Menu.buildFromTemplate` emit
|
Objects created with `new Menu` or returned by `Menu.buildFromTemplate` emit
|
||||||
the following events:
|
the following events:
|
||||||
|
|
||||||
#### Event: 'closed'
|
|
||||||
|
|
||||||
Emitted when the menu is closed.
|
|
||||||
|
|
||||||
Note that one menu can be shown for multiple windows, and in this case the
|
|
||||||
`closed` event would be emitted for multiple times.
|
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
The `Menu` class is only available in the main process, but you can also use it
|
The `Menu` class is only available in the main process, but you can also use it
|
||||||
|
|
|
@ -39,9 +39,6 @@ Menu.prototype._init = function () {
|
||||||
const found = this.groupsMap[id].find(item => item.checked) || null
|
const found = this.groupsMap[id].find(item => item.checked) || null
|
||||||
if (!found) v8Util.setHiddenValue(this.groupsMap[id][0], 'checked', true)
|
if (!found) v8Util.setHiddenValue(this.groupsMap[id][0], 'checked', true)
|
||||||
}
|
}
|
||||||
},
|
|
||||||
menuClosed: () => {
|
|
||||||
this.emit('closed')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -280,8 +280,7 @@ WebContents.prototype._init = function () {
|
||||||
this.on('pepper-context-menu', function (event, params, callback) {
|
this.on('pepper-context-menu', function (event, params, callback) {
|
||||||
// Access Menu via electron.Menu to prevent circular require.
|
// Access Menu via electron.Menu to prevent circular require.
|
||||||
const menu = electron.Menu.buildFromTemplate(params.menu)
|
const menu = electron.Menu.buildFromTemplate(params.menu)
|
||||||
menu.once('closed', callback)
|
menu.popup(event.sender.getOwnerBrowserWindow(), params.x, params.y, callback)
|
||||||
menu.popup(event.sender.getOwnerBrowserWindow(), params.x, params.y)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// The devtools requests the webContents to reload.
|
// The devtools requests the webContents to reload.
|
||||||
|
|
|
@ -335,37 +335,6 @@ describe('Menu module', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('Menu.closePopup()', () => {
|
|
||||||
let w = null
|
|
||||||
let menu
|
|
||||||
|
|
||||||
beforeEach((done) => {
|
|
||||||
w = new BrowserWindow({show: false, width: 200, height: 200})
|
|
||||||
menu = Menu.buildFromTemplate([
|
|
||||||
{
|
|
||||||
label: '1'
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
w.loadURL('data:text/html,<html>teszt</html>')
|
|
||||||
w.webContents.on('dom-ready', () => {
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
return closeWindow(w).then(() => { w = null })
|
|
||||||
})
|
|
||||||
|
|
||||||
it('emits closed event', (done) => {
|
|
||||||
menu.popup(w, {x: 100, y: 100})
|
|
||||||
menu.on('closed', () => {
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
menu.closePopup(w)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('Menu.setApplicationMenu', () => {
|
describe('Menu.setApplicationMenu', () => {
|
||||||
it('sets a menu', () => {
|
it('sets a menu', () => {
|
||||||
const menu = Menu.buildFromTemplate([
|
const menu = Menu.buildFromTemplate([
|
||||||
|
|
Loading…
Reference in a new issue