diff --git a/packages/electron-chrome-extensions/README.md b/packages/electron-chrome-extensions/README.md index 3df36325..0065743c 100644 --- a/packages/electron-chrome-extensions/README.md +++ b/packages/electron-chrome-extensions/README.md @@ -448,7 +448,7 @@ See [Electron's Notification tutorial](https://www.electronjs.org/docs/tutorial/ - [x] chrome.windows.onCreated - [x] chrome.windows.onRemoved - [x] chrome.windows.onFocusChanged -- [ ] chrome.windows.onBoundsChanged +- [x] chrome.windows.onBoundsChanged ## Limitations diff --git a/packages/electron-chrome-extensions/src/browser/api/windows.ts b/packages/electron-chrome-extensions/src/browser/api/windows.ts index f8a0d902..cfad7d7a 100644 --- a/packages/electron-chrome-extensions/src/browser/api/windows.ts +++ b/packages/electron-chrome-extensions/src/browser/api/windows.ts @@ -36,6 +36,10 @@ export class WindowsAPI { this.onFocusChanged(windowId) }) + window.on('resized', () => { + this.onBoundsChanged(windowId) + }) + window.once('closed', () => { this.ctx.store.windowDetailsCache.delete(windowId) this.ctx.store.removeWindow(window) @@ -164,4 +168,11 @@ export class WindowsAPI { this.ctx.store.lastFocusedWindowId = windowId this.ctx.router.broadcastEvent('windows.onFocusChanged', windowId) } + + onBoundsChanged(windowId: number) { + const window = this.ctx.store.getWindowById(windowId) + if (!window) return + const windowDetails = this.createWindowDetails(window) + this.ctx.router.broadcastEvent('windows.onBoundsChanged', windowDetails) + } } diff --git a/packages/electron-chrome-extensions/src/renderer/index.ts b/packages/electron-chrome-extensions/src/renderer/index.ts index d15e2891..878b385d 100644 --- a/packages/electron-chrome-extensions/src/renderer/index.ts +++ b/packages/electron-chrome-extensions/src/renderer/index.ts @@ -636,6 +636,7 @@ export const injectExtensionAPIs = () => { onCreated: new ExtensionEvent('windows.onCreated'), onRemoved: new ExtensionEvent('windows.onRemoved'), onFocusChanged: new ExtensionEvent('windows.onFocusChanged'), + onBoundsChanged: new ExtensionEvent('windows.onBoundsChanged'), } }, },