From 8cb888bfad938522ab4e9ed0c57e65774fcad17b Mon Sep 17 00:00:00 2001 From: Gabriel Schmidt Cordeiro Date: Fri, 10 Jul 2026 11:42:55 -0300 Subject: [PATCH 1/2] =?UTF-8?q?fix(linux):=20reafirmar=20alwaysOnTop=20no?= =?UTF-8?q?=20blur=20(overlay=20ca=C3=ADa=20pro=20fundo=20ao=20clicar=20fo?= =?UTF-8?q?ra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No Mutter/XWayland o estado _NET_WM_STATE_ABOVE oscila ao perder o foco: clicar em outra janela ou no desktop derrubava o overlay para trás de tudo, sem passar por toggleWin/revealIfHidden (únicos pontos que reafirmavam o estado). Adiciona win.on('blur', ...) reafirmando setAlwaysOnTop + moveTop — mesmo padrão já usado no toggle/reveal. Verificado em npm start (XWayland): após ativar outra janela, o overlay mantém _NET_WM_STATE_ABOVE e permanece no topo. Co-Authored-By: Claude Opus 4.8 (1M context) --- main.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/main.js b/main.js index c0749b2..d27e672 100644 --- a/main.js +++ b/main.js @@ -562,6 +562,14 @@ function createWindow() { // Linux/Mutter ignora `maximizable` → reverte na hora qualquer maximize // (Super+↑, drag no topo da tela, tiling). Overlay nunca vira tela cheia. win.on('maximize', () => { try { win.unmaximize(); } catch {} }); + // Mutter/XWayland: o estado _NET_WM_STATE_ABOVE oscila ao perder foco (ver + // CHANGELOG 0.6.7) — clicar em outra janela/no desktop derruba o always-on-top + // sem passar por toggleWin/revealIfHidden. Reafirma no blur, do mesmo jeito + // que já se faz no toggle/reveal (setAlwaysOnTop + moveTop). + win.on('blur', () => { + try { win.setAlwaysOnTop(true, 'screen-saver'); } catch {} + try { win.moveTop(); } catch {} + }); // skipTaskbar FORÇADO via wmctrl: no Mutter, com frameless+transparent+ // alwaysOnTop, nem a option `skipTaskbar` nem setSkipTaskbar() geram o // hint X11 _NET_WM_STATE_SKIP_TASKBAR/PAGER de forma confiável (ele é From 6ef1e1d6637170bcaa4566141864f4dd9e218bdf Mon Sep 17 00:00:00 2001 From: Gabriel Schmidt Cordeiro Date: Fri, 10 Jul 2026 11:56:09 -0300 Subject: [PATCH 2/2] docs(changelog): entrada do fix de alwaysOnTop no blur (Unreleased) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Registra em Unreleased → Fixed a correção do overlay que caía para trás ao clicar fora (reafirmação de alwaysOnTop no blur), complementando o raise explícito da v0.6.7. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21412e5..89cce18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### Changed ### Fixed +- **Overlay caía para trás ao clicar fora.** No Mutter/XWayland o estado + `_NET_WM_STATE_ABOVE` oscilava ao perder o foco: clicar em outra janela ou no + desktop mandava o overlay para o fundo, sem passar por `toggleWin`/`revealIfHidden` + (únicos pontos que reafirmavam o `alwaysOnTop`). Agora `win.on('blur')` reafirma + `setAlwaysOnTop(true, 'screen-saver')` + `moveTop()` — mesmo padrão do toggle/reveal. + Complementa o raise explícito da v0.6.7. ## [0.6.7] - 2026-07-09