Streaming: hide Flash Player's menu bar without full screen #9

Merged
branderson merged 1 commits from flash-windowed into main 2026-10-14 17:26:38 -07:00
Collaborator

Summary generated by LLM agent

Fixes Flash games that break in Flash Player's full-screen mode. In Bloons, a dart makes its throw sound but never flies, so no level can be finished. On flashbox, pressing Esc to leave full screen fixed it. Mouse movement and hover worked throughout.

Changes

  • No full screen. The streamer no longer presses Ctrl+F when a Flash projector opens. It now stretches the window to the display and moves it up by the menu bar's height, so the menu bar sits above the visible area. That keeps the two things full screen gave us: no menu bar, and the movie filling the stream (a resized projector scales the movie to its window).
  • Measuring the menu bar. Its height is the window's opening height, which is the movie plus the menu bar, minus the movie's. Any implausible result (not between 0 and 100 px) falls back to 0, which leaves the menu bar visible rather than cutting off the game.
  • Exact stage size. The session manager used to round a game's size up to even numbers, which H.264 requires, so the stage could be off by a pixel. It now passes the exact size as GAME_WIDTH/GAME_HEIGHT, and rounds only the Selkies display size.

Testing

  • Session manager tests pass (21). The catalog test now expects exact stage sizes, such as 500x375 rather than 500x376.

  • fp-launch passes bash -n.

  • The window handling needs a real stream, since the sandbox has no X display or Docker. Check on flashbox:

    1. Bloons darts fly.
    2. Flash Player's menu bar isn't visible at the top of the stream.
    3. The movie fills the stream without black bars beyond the aspect ratio.

    If the window manager refuses to move the window above the screen, the menu bar will show, but the game still plays.

**Summary generated by LLM agent** Fixes Flash games that break in Flash Player's full-screen mode. In Bloons, a dart makes its throw sound but never flies, so no level can be finished. On flashbox, pressing Esc to leave full screen fixed it. Mouse movement and hover worked throughout. ## Changes - **No full screen.** The streamer no longer presses Ctrl+F when a Flash projector opens. It now stretches the window to the display and moves it up by the menu bar's height, so the menu bar sits above the visible area. That keeps the two things full screen gave us: no menu bar, and the movie filling the stream (a resized projector scales the movie to its window). - **Measuring the menu bar.** Its height is the window's opening height, which is the movie plus the menu bar, minus the movie's. Any implausible result (not between 0 and 100 px) falls back to 0, which leaves the menu bar visible rather than cutting off the game. - **Exact stage size.** The session manager used to round a game's size up to even numbers, which H.264 requires, so the stage could be off by a pixel. It now passes the exact size as `GAME_WIDTH`/`GAME_HEIGHT`, and rounds only the Selkies display size. ## Testing - Session manager tests pass (21). The catalog test now expects exact stage sizes, such as 500x375 rather than 500x376. - `fp-launch` passes `bash -n`. - The window handling needs a real stream, since the sandbox has no X display or Docker. Check on flashbox: 1. Bloons darts fly. 2. Flash Player's menu bar isn't visible at the top of the stream. 3. The movie fills the stream without black bars beyond the aspect ratio. If the window manager refuses to move the window above the screen, the menu bar will show, but the game still plays.
dejima-agent added 1 commit 2026-10-14 17:25:08 -07:00
Some games break in Flash Player's full-screen mode: in Bloons darts
make a sound but never fly. Instead of pressing Ctrl+F, the streamer
stretches the projector's window to the display and moves it up by the
menu bar's height, measured from the window's opening height and the
movie's. The session manager now passes the game's exact size as
GAME_WIDTH/GAME_HEIGHT and rounds only the display size to even.
branderson approved these changes 2026-10-14 17:26:33 -07:00
branderson merged commit 3c4d3e7216 into main 2026-10-14 17:26:38 -07:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: branderson/dotcom-arcade#9