Skip to content

fix(desktop): toggle fullscreen on plain F - #608

Open
Kundhan007 wants to merge 1 commit into
NuvioMedia:Devfrom
Kundhan007:fix/plain-f-fullscreen-toggle
Open

fix(desktop): toggle fullscreen on plain F#608
Kundhan007 wants to merge 1 commit into
NuvioMedia:Devfrom
Kundhan007:fix/plain-f-fullscreen-toggle

Conversation

@Kundhan007

@Kundhan007 Kundhan007 commented Sep 3, 2026

Copy link
Copy Markdown

Summary

Binds plain F (no modifiers) to the existing desktop fullscreen toggle in the Compose Window(onKeyEvent = ...) scope in Main.kt, complementing the plain-F binding in the player webview that already landed via #594 (see controls.js on Dev). No other behavior touched.

Note on scope change: this PR originally also bound plain F inside the player webview (controls.js). That half was merged independently via #594, so after rebasing on Dev this PR now contains only the Main.kt window-level handler — the part still uncovered by #594: F works outside the player (library/home screens) and when no Compose node holds focus.

PR type

  • Behavior bug/regression fix

Why

Pressing F in 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 on F. 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.kt is shared desktop shell code: the window-level binding applies to the whole app window. No Android/iOS code touched, no changes to controls.js in this PR.

Issue or approval

Fixes #607

UI / behavior impact

  • No UI change
  • Behavior changed only to fix a documented bug/regression

Policy check

  • I have read and understood CONTRIBUTING.md.
  • This PR is small, focused, and limited to one problem.
  • This PR is scoped to the desktop app, desktop packaging, desktop documentation, or shared code required for desktop behavior.
  • This PR is not cosmetic-only.
  • Any UI change fixes a linked glitch/bug and includes visual proof, or this PR has no UI change.
  • Any behavior change fixes a linked bug/regression or has explicit approval, or this PR has no behavior change.
  • This PR does not bundle unrelated refactors, cleanups, formatting, or drive-by changes.
  • This PR does not add dependencies, architecture changes, migrations, or product-direction changes without explicit approval.
  • I listed the testing performed below.

Scope boundaries

Intentionally not changed: F11 and Cmd+Ctrl+F bindings, Shift+F (rejected for parity), the player webview controls.js plain-F binding (already merged via #594), DesktopAppFullscreen.kt dispatcher, Windows native emulation, signing/packaging, any visual styling.

Testing

Proof video (posted in comments): stock build (F does nothing) vs this build (F toggles fullscreen on macOS arm64).

Breaking changes

None.

Linked issues

Fixes #607

@Kundhan007

Copy link
Copy Markdown
Author
F.full.screen.mp4

please see the video for proof

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
Kundhan007 force-pushed the fix/plain-f-fullscreen-toggle branch from 1f1c07f to 67b4e2e Compare September 7, 2026 11:52
@Kundhan007

Copy link
Copy Markdown
Author

@KhooLy — rebased this PR on the latest Dev and trimmed its scope to keep it small and focused:

PR description updated to match. Re-verified after the rebase: ./gradlew :composeApp:compileKotlinDesktop → BUILD SUCCESSFUL against latest Dev (Temurin 17, macOS arm64). This still fixes #607 together with #594. Happy to adjust anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: F key does nothing — expected fullscreen toggle on macOS desktop player

1 participant