fix(desktop): toggle fullscreen on plain F - #608
Open
Kundhan007 wants to merge 1 commit into
Open
Conversation
Author
F.full.screen.mp4please see the video for proof |
22 tasks
Plain F was unbound in both desktop fullscreen layers (only F11 and Cmd+Ctrl+F worked). Add it in the Compose Window onKeyEvent scope and the player webview keydown handler, keeping existing bindings and leaving text input untouched. Fixes NuvioMedia#607
Kundhan007
force-pushed
the
fix/plain-f-fullscreen-toggle
branch
from
September 7, 2026 11:52
1f1c07f to
67b4e2e
Compare
Author
|
@KhooLy — rebased this PR on the latest
PR description updated to match. Re-verified after the rebase: |
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.
Summary
Binds plain
F(no modifiers) to the existing desktop fullscreen toggle in the ComposeWindow(onKeyEvent = ...)scope inMain.kt, complementing the plain-F binding in the player webview that already landed via #594 (see controls.js onDev). No other behavior touched.Note on scope change: this PR originally also bound plain
Finside the player webview (controls.js). That half was merged independently via #594, so after rebasing onDevthis PR now contains only theMain.ktwindow-level handler — the part still uncovered by #594:Fworks outside the player (library/home screens) and when no Compose node holds focus.PR type
Why
Pressing
Fin the desktop app did nothing outside the player webview, while every major video player (YouTube, VLC, IINA) and mpv itself — which Nuvio's player is built on — toggles fullscreen onF. The desktop shell swallows a key its own engine binds by default, so this restores intended fullscreen/keyboard behavior app-wide.Desktop scope
macOS desktop app (verified on macOS arm64).
Main.ktis shared desktop shell code: the window-level binding applies to the whole app window. No Android/iOS code touched, no changes tocontrols.jsin this PR.Issue or approval
Fixes #607
UI / behavior impact
Policy check
CONTRIBUTING.md.Scope boundaries
Intentionally not changed:
F11andCmd+Ctrl+Fbindings,Shift+F(rejected for parity), the player webviewcontrols.jsplain-F binding (already merged via #594),DesktopAppFullscreen.ktdispatcher, Windows native emulation, signing/packaging, any visual styling.Testing
./gradlew :composeApp:compileKotlinDesktop→ BUILD SUCCESSFUL, zero errors (Temurin JDK 17.0.20.1, macOS arm64), against latestDevincluding feat(Player Shortcuts): Add the shortcut control functionality to player controls #594.Ftoggles fullscreen on library/home/player;fstill types in search boxes; modal open = no-op; hold-F= single toggle (400 ms debounce);Fon fresh launch before any click toggles;F11andCmd+Ctrl+Fregressed OK; plainFinside the player continues to work via the feat(Player Shortcuts): Add the shortcut control functionality to player controls #594 webview binding.Proof video (posted in comments): stock build (
Fdoes nothing) vs this build (Ftoggles fullscreen on macOS arm64).Breaking changes
None.
Linked issues
Fixes #607