diff --git a/resources/electron/electron-plugin/src/server/api/window.ts b/resources/electron/electron-plugin/src/server/api/window.ts index 8b6a1f54..63ea220f 100644 --- a/resources/electron/electron-plugin/src/server/api/window.ts +++ b/resources/electron/electron-plugin/src/server/api/window.ts @@ -17,6 +17,14 @@ router.post('/maximize', (req, res) => { res.sendStatus(200); }); +router.post('/unmaximize', (req, res) => { + const { id } = req.body; + + state.windows[id]?.unmaximize(); + + res.sendStatus(200); +}); + router.post('/minimize', (req, res) => { const { id } = req.body; @@ -348,6 +356,13 @@ router.post('/open', (req, res) => { }); }); + window.on('unmaximize', () => { + notifyLaravel('events', { + event: 'Native\\Desktop\\Events\\Windows\\WindowUnmaximized', + payload: [id], + }); + }); + window.on('show', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowShown', diff --git a/src/Events/Windows/WindowUnmaximized.php b/src/Events/Windows/WindowUnmaximized.php new file mode 100644 index 00000000..16f3ed61 --- /dev/null +++ b/src/Events/Windows/WindowUnmaximized.php @@ -0,0 +1,26 @@ +client->post('window/unmaximize', [ + 'id' => $id ?? $this->detectId(), + ]); + } + public function minimize($id = null): void { $this->client->post('window/minimize', [