feat: add win.setTopBrowserView()
so that BrowserViews can be raised (#27007)
* feat: Raise a browser view via `BrowserWindow.setTopBrowserView()`. This is similar to removing and re-adding a browser view, but avoids a visible flicker as the browser view is not removed from the window when using `setTopBrowserView`. Note: if the given browser view is not attached to the window, it will be added. This commit contains the macOS implementation. * feat: setTopBrowserView support for Windows and Linux * docs: add info about setTopBrowserView * docs: Clarify behavior when browserView is not yet attached. * fix: throw en error when browserView is not attached to the window * fix: build error * fix: test * fix: add test case * fix: tests * fix: reparenting * fix: close second window in tests Co-authored-by: sentialx <sentialx@gmail.com>
This commit is contained in:
parent
706d9ede9b
commit
5f5afaae27
11 changed files with 108 additions and 0 deletions
|
@ -210,6 +210,32 @@ describe('BrowserView module', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('BrowserWindow.setTopBrowserView()', () => {
|
||||
it('should throw an error when a BrowserView is not attached to the window', () => {
|
||||
view = new BrowserView();
|
||||
expect(() => {
|
||||
w.setTopBrowserView(view);
|
||||
}).to.throw(/is not attached/);
|
||||
});
|
||||
|
||||
it('should throw an error when a BrowserView is attached to some other window', () => {
|
||||
view = new BrowserView();
|
||||
|
||||
const win2 = new BrowserWindow();
|
||||
|
||||
w.addBrowserView(view);
|
||||
view.setBounds({ x: 0, y: 0, width: 100, height: 100 });
|
||||
win2.addBrowserView(view);
|
||||
|
||||
expect(() => {
|
||||
w.setTopBrowserView(view);
|
||||
}).to.throw(/is not attached/);
|
||||
|
||||
win2.close();
|
||||
win2.destroy();
|
||||
});
|
||||
});
|
||||
|
||||
describe('BrowserView.webContents.getOwnerBrowserWindow()', () => {
|
||||
it('points to owning window', () => {
|
||||
view = new BrowserView();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue