mirror of
https://github.com/electron/electron.git
synced 2026-01-08 23:18:06 -05:00
fix: crash on parent window close and focur/blur (#46559)
This commit is contained in:
@@ -219,14 +219,14 @@ void BrowserWindow::CloseImmediately() {
|
||||
}
|
||||
|
||||
void BrowserWindow::Focus() {
|
||||
if (api_web_contents_->IsOffScreen())
|
||||
if (api_web_contents_ && api_web_contents_->IsOffScreen())
|
||||
FocusOnWebView();
|
||||
else
|
||||
BaseWindow::Focus();
|
||||
}
|
||||
|
||||
void BrowserWindow::Blur() {
|
||||
if (api_web_contents_->IsOffScreen())
|
||||
if (api_web_contents_ && api_web_contents_->IsOffScreen())
|
||||
BlurWebView();
|
||||
else
|
||||
BaseWindow::Blur();
|
||||
|
||||
@@ -4930,6 +4930,18 @@ describe('BrowserWindow module', () => {
|
||||
expect(w.getChildWindows().length).to.equal(0);
|
||||
});
|
||||
|
||||
it('can handle parent window close with focus or blur events', (done) => {
|
||||
const w = new BrowserWindow({ show: false });
|
||||
const c = new BrowserWindow({ show: false, parent: w });
|
||||
|
||||
c.on('closed', () => {
|
||||
w.focus();
|
||||
done();
|
||||
});
|
||||
|
||||
w.close();
|
||||
});
|
||||
|
||||
ifit(process.platform === 'darwin')('only shows the intended window when a child with siblings is shown', async () => {
|
||||
const w = new BrowserWindow({ show: false });
|
||||
const childOne = new BrowserWindow({ show: false, parent: w });
|
||||
|
||||
Reference in New Issue
Block a user