fix: Allow windows behind macOS elements if frame = false (#23976)
This commit is contained in:
parent
71e2b7151c
commit
3eade2c228
2 changed files with 21 additions and 2 deletions
|
@ -91,8 +91,20 @@ bool ScopedDisableResize::disable_resize_ = false;
|
|||
|
||||
NSRect result = [super constrainFrameRect:frameRect toScreen:screen];
|
||||
// Enable the window to be larger than screen.
|
||||
if ([self enableLargerThanScreen])
|
||||
result.size = frameRect.size;
|
||||
if ([self enableLargerThanScreen]) {
|
||||
// If we have a frame, ensure that we only position the window
|
||||
// somewhere where the user can move or resize it (and not
|
||||
// behind the menu bar, for instance)
|
||||
//
|
||||
// If there's no frame, put the window wherever the developer
|
||||
// wanted it to go
|
||||
if (shell_->has_frame()) {
|
||||
result.size = frameRect.size;
|
||||
} else {
|
||||
result = frameRect;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -1673,6 +1673,13 @@ describe('BrowserWindow module', () => {
|
|||
const after = w.getPosition();
|
||||
expect(after[1]).to.be.at.least(0);
|
||||
});
|
||||
it('can move the window behind menu bar if it has no frame', () => {
|
||||
const w = new BrowserWindow({ show: true, enableLargerThanScreen: true, frame: false });
|
||||
w.setPosition(-10, -10);
|
||||
const after = w.getPosition();
|
||||
expect(after[0]).to.be.equal(-10);
|
||||
expect(after[1]).to.be.equal(-10);
|
||||
});
|
||||
it('without it, cannot move the window out of screen', () => {
|
||||
const w = new BrowserWindow({ show: true, enableLargerThanScreen: false });
|
||||
w.setPosition(-10, -10);
|
||||
|
|
Loading…
Reference in a new issue