Rename Fullscreen → Full Window; add true desktop Fullscreen#12
Merged
Conversation
- Rename the existing button "Fullscreen" -> "Full Window" (it fills the WebView viewport / app content area; behaviour unchanged). - Add a new "Fullscreen" button that also drives the native OS window into borderless full-screen so the sketch covers the whole desktop, not just the app window. Implemented via a JS->C++ bridge: window.neoSetDesktopFullscreen(bool), bound in main.cpp (Win32 borderless on Windows, gtk_window_fullscreen on Linux), with the windowed style and placement saved for restore. - Esc exits both; a fullscreenchange handler restores the native window. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The previous "Fullscreen" button only filled the app's content area (the WebView viewport), not the OS desktop. This splits the two behaviours.
How the desktop fullscreen works
A single JS→C++ bridge:
window.neoSetDesktopFullscreen(bool), bound inmain.cpp. On Windows it strips the window frame (WS_CAPTION/WS_THICKFRAME/…) and stretches the window over the monitor (MONITORINFO+SetWindowPos), saving the prior style andWINDOWPLACEMENTto restore. On Linux it callsgtk_window_fullscreen/gtk_window_unfullscreen. The JS keeps usingrequestFullscreen()on.right-panel(so the sketch — not the editor/menus — is what's shown), then calls the bridge; Esc leaves element fullscreen and afullscreenchangehandler restores the native window.Reviewer notes
node --checkpasses; the Debug target builds and links the new Win32 calls; app launches cleanly with the binding registered.🤖 Generated with Claude Code