fix: setTopBrowserView focus issue with reordering (#42734)
This commit is contained in:
parent
3ab4b22460
commit
9d3195bec1
2 changed files with 19 additions and 1 deletions
|
@ -209,7 +209,12 @@ BrowserWindow.prototype.getBrowserViews = function () {
|
|||
|
||||
BrowserWindow.prototype.setTopBrowserView = function (browserView: BrowserView) {
|
||||
if (browserView.ownerWindow !== this) { throw new Error('Given BrowserView is not attached to the window'); }
|
||||
this.addBrowserView(browserView);
|
||||
const idx = this._browserViews.indexOf(browserView);
|
||||
if (idx >= 0) {
|
||||
this.contentView.addChildView(browserView.webContentsView);
|
||||
this._browserViews.splice(idx, 1);
|
||||
this._browserViews.push(browserView);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = BrowserWindow;
|
||||
|
|
|
@ -520,6 +520,19 @@ describe('BrowserView module', () => {
|
|||
win2.close();
|
||||
win2.destroy();
|
||||
});
|
||||
|
||||
it('should reorder the BrowserView to the top if it is already in the window', () => {
|
||||
view = new BrowserView();
|
||||
const view2 = new BrowserView();
|
||||
defer(() => view2.webContents.destroy());
|
||||
w.addBrowserView(view);
|
||||
w.addBrowserView(view2);
|
||||
defer(() => w.removeBrowserView(view2));
|
||||
|
||||
w.setTopBrowserView(view);
|
||||
const views = w.getBrowserViews();
|
||||
expect(views.indexOf(view)).to.equal(views.length - 1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('BrowserView.webContents.getOwnerBrowserWindow()', () => {
|
||||
|
|
Loading…
Reference in a new issue