fix: close context menu before popup (#17474)
This commit is contained in:
parent
d2ad8efef4
commit
49f13e38f9
2 changed files with 21 additions and 0 deletions
|
@ -142,6 +142,10 @@ void NotifyIcon::PopUpContextMenu(const gfx::Point& pos,
|
||||||
if (!SetForegroundWindow(window_))
|
if (!SetForegroundWindow(window_))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Cancel current menu if there is one.
|
||||||
|
if (menu_runner_ && menu_runner_->IsRunning())
|
||||||
|
menu_runner_->Cancel();
|
||||||
|
|
||||||
// Show menu at mouse's position by default.
|
// Show menu at mouse's position by default.
|
||||||
gfx::Rect rect(pos, gfx::Size());
|
gfx::Rect rect(pos, gfx::Size());
|
||||||
if (pos.IsOrigin())
|
if (pos.IsOrigin())
|
||||||
|
|
|
@ -24,6 +24,23 @@ describe('tray module', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('tray.popUpContextMenu', () => {
|
||||||
|
before(function () {
|
||||||
|
if (process.platform !== 'win32') {
|
||||||
|
this.skip()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can be called when menu is showing', (done) => {
|
||||||
|
tray.setContextMenu(Menu.buildFromTemplate([{ label: 'Test' }]))
|
||||||
|
setTimeout(() => {
|
||||||
|
tray.popUpContextMenu()
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
tray.popUpContextMenu()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('tray.setImage', () => {
|
describe('tray.setImage', () => {
|
||||||
it('accepts empty image', () => {
|
it('accepts empty image', () => {
|
||||||
tray.setImage(nativeImage.createEmpty())
|
tray.setImage(nativeImage.createEmpty())
|
||||||
|
|
Loading…
Reference in a new issue