Skip to content

fix: show menubar popup over fullscreen Spaces on macOS - #3322

Closed
tmcknight wants to merge 1 commit into
gitify-app:mainfrom
tmcknight:fix/macos-fullscreen-space-popup
Closed

tmcknight wants to merge 1 commit into
gitify-app:mainfrom
tmcknight:fix/macos-fullscreen-space-popup

Conversation

@tmcknight

Copy link
Copy Markdown

Clicking the tray icon from a fullscreen Space switched to a Desktop Space instead of drawing the popup over the fullscreen app. Ordinary Desktop Spaces were unaffected, which is why this only reproduced against fullscreen apps.

The cause is window level, not Space membership. electron-menubar elevates the window unconditionally on Windows, but elsewhere only when the window is kept open on blur:

if (process.platform === "win32") win.setAlwaysOnTop(true, "pop-up-menu");
else win.setAlwaysOnTop(keepOpen || this._options.browserWindow.alwaysOnTop === true);

With default settings keepOpen is false, so the popup sat at normal window level. The library already passes visibleOnFullScreen, so the window may join a fullscreen Space, but a normal-level window still cannot render above one and macOS switches to a Space where it can. Opting into alwaysOnTop supplies the missing level; the popup still hides on blur, so it floats only while open.

macOS only. Windows never reads this option, and on Linux an absent key leaves the current setAlwaysOnTop(false) behavior unchanged — the new test asserts that, and CI runs on ubuntu-latest. Verified manually on macOS 27.0 (arm64) with a packaged build; lint, types, and the 1524 unit tests pass, and no renderer markup changed.

Fixes #563.

On macOS the popup was created at normal window level, so clicking the
tray icon from a fullscreen Space made macOS switch to a Desktop Space
instead of drawing the window over the fullscreen app. Ordinary Desktop
Spaces were unaffected, which is why this only ever reproduced against
fullscreen apps.

electron-menubar elevates the window unconditionally on Windows but
gates it behind the keep-open-on-blur option elsewhere:

    if (process.platform === 'win32') win.setAlwaysOnTop(true, 'pop-up-menu');
    else win.setAlwaysOnTop(keepOpen || browserWindow.alwaysOnTop === true);

visibleOnFullScreen (which the library already sets) only grants the
window fullScreenAuxiliary collection behavior, letting it join a
fullscreen Space; a normal-level window still cannot render above one.
Opting into alwaysOnTop supplies the missing window level, and the
popup continues to hide on blur, so it floats only while it is open.

Closes gitify-app#563
@github-actions github-actions Bot added the bug Something isn't working label Sep 18, 2026
@tmcknight
tmcknight marked this pull request as draft September 18, 2026 17:29
@tmcknight

Copy link
Copy Markdown
Author

Still need to do some digging.

@tmcknight

Copy link
Copy Markdown
Author

Closing as this doesn't fix the issue I'm seeing. I'll post a followup comment on #563 with my findings.

@tmcknight tmcknight closed this Sep 18, 2026
@tmcknight
tmcknight deleted the fix/macos-fullscreen-space-popup branch September 18, 2026 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Development

Successfully merging this pull request may close these issues.

Gitify jumps to another Space

1 participant