feat: allow setting window shape (#13789)

This binds Widget::SetShape, an API that already exists in Chromium (for
Windows and Linux). It's a more reliable method of having some parts of
your window be "click-through" than the current `setIgnoreMouseEvents`
API, which messes around with the `WS_EX_LAYERED` window style on
Windows, causing strange bugs and incompatibility with hardware
acceleration.
This commit is contained in:
Jeremy Apthorp 2018-07-30 13:37:40 -07:00 committed by GitHub
parent b22ac5f0a2
commit 3bdff2d238
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 0 deletions

View file

@ -928,6 +928,17 @@ describe('BrowserWindow module', () => {
})
})
describe('BrowserWindow.setShape(rects)', () => {
it('allows setting shape', () => {
assert.doesNotThrow(() => {
w.setShape([])
w.setShape([{x: 0, y: 0, width: 100, height: 100}])
w.setShape([{x: 0, y: 0, width: 100, height: 100}, {x: 0, y: 200, width: 1000, height: 100}])
w.setShape([])
})
})
})
describe('"useContentSize" option', () => {
it('make window created with content size when used', () => {
w.destroy()