mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
fix: emit window-all-closed after closing the window (#28914)
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
This commit is contained in:
@@ -419,11 +419,11 @@ void NativeWindow::NotifyWindowClosed() {
|
||||
if (is_closed_)
|
||||
return;
|
||||
|
||||
WindowList::RemoveWindow(this);
|
||||
|
||||
is_closed_ = true;
|
||||
for (NativeWindowObserver& observer : observers_)
|
||||
observer.OnWindowClosed();
|
||||
|
||||
WindowList::RemoveWindow(this);
|
||||
}
|
||||
|
||||
void NativeWindow::NotifyWindowEndSession() {
|
||||
|
||||
@@ -1721,6 +1721,8 @@ describe('default behavior', () => {
|
||||
});
|
||||
|
||||
describe('window-all-closed', () => {
|
||||
afterEach(closeAllWindows);
|
||||
|
||||
it('quits when the app does not handle the event', async () => {
|
||||
const result = await runTestApp('window-all-closed');
|
||||
expect(result).to.equal(false);
|
||||
@@ -1730,6 +1732,17 @@ describe('default behavior', () => {
|
||||
const result = await runTestApp('window-all-closed', '--handle-event');
|
||||
expect(result).to.equal(true);
|
||||
});
|
||||
|
||||
it('should omit closed windows from getAllWindows', async () => {
|
||||
const w = new BrowserWindow({ show: false });
|
||||
const len = new Promise(resolve => {
|
||||
app.on('window-all-closed', () => {
|
||||
resolve(BrowserWindow.getAllWindows().length);
|
||||
});
|
||||
});
|
||||
w.close();
|
||||
expect(await len).to.equal(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('user agent fallback', () => {
|
||||
|
||||
Reference in New Issue
Block a user