fix: close all open sheets before closing window on macOS (#43953)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: John Beutner <beutner.john@gmail.com>
This commit is contained in:
parent
3c7a49fdb1
commit
6c1233a7d2
2 changed files with 12 additions and 1 deletions
|
@ -346,8 +346,11 @@ void NativeWindowMac::Close() {
|
|||
// [window_ performClose:nil], the window won't close properly
|
||||
// even after the user has ended the sheet.
|
||||
// Ensure it's closed before calling [window_ performClose:nil].
|
||||
if ([window_ attachedSheet])
|
||||
// If multiple sheets are open, they must all be closed.
|
||||
while ([window_ attachedSheet]) {
|
||||
[window_ endSheet:[window_ attachedSheet]];
|
||||
}
|
||||
DCHECK_EQ([[window_ sheets] count], 0UL);
|
||||
|
||||
// window_ could be nil after performClose.
|
||||
bool should_notify = is_modal() && parent() && IsVisible();
|
||||
|
|
|
@ -116,6 +116,14 @@ describe('BrowserWindow module', () => {
|
|||
await closed;
|
||||
});
|
||||
|
||||
it('should work if called when multiple messageBoxes are showing', async () => {
|
||||
const closed = once(w, 'closed');
|
||||
dialog.showMessageBox(w, { message: 'Hello Error' });
|
||||
dialog.showMessageBox(w, { message: 'Hello Error' });
|
||||
w.close();
|
||||
await closed;
|
||||
});
|
||||
|
||||
it('closes window without rounded corners', async () => {
|
||||
await closeWindow(w);
|
||||
w = new BrowserWindow({ show: false, frame: false, roundedCorners: false });
|
||||
|
|
Loading…
Reference in a new issue