Skip to content

bugfix-playback - Add opaque black backdrop to remove artifacts#931

Merged
RadicalMuffinMan merged 1 commit into
Moonfin-Client:mainfrom
mattsigal:fix/video-player-letterbox-bleed
Jul 26, 2026
Merged

bugfix-playback - Add opaque black backdrop to remove artifacts#931
RadicalMuffinMan merged 1 commit into
Moonfin-Client:mainfrom
mattsigal:fix/video-player-letterbox-bleed

Conversation

@mattsigal

@mattsigal mattsigal commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Well, it happened again. Was watching a movie and the nefarious phantom UI elements were bleeding through the top and the bottom of the image. Decided to do some tests and found that adding a background route bleed-through along letterbox borders for non-standard aspect ratio videos fully eliminates the background UI ghosting when modal dialogs are open during playback!

Related Issues

Link related issues or tickets separated by commas.

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

List the key changes included in this PR.

  • Added a 100% opaque Positioned.fill(child: ColoredBox(color: Colors.black)) widget at position 0 of the root Stack in VideoPlayerScreen (right behind _buildVideoSurface()).
  • Prevents underlying routes (e.g. ItemDetailScreen) from bleeding through along top/bottom letterbox bars on videos with non-traditional aspect ratios (e.g. 1920x804 / 2.39:1).
  • Eliminates background UI ghosting when modal dialogs (Playback Information, track selectors) are open over the video player.

Platform

  • Android
  • iOS
  • tvOS
  • Web
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

Describe how this change was tested.

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Launched Moonfin on Nvidia Shield (AndroidTV).
  2. Played media with non-standard aspect ratio (1920x804 / 2.39:1).
  3. Verified top and bottom letterbox borders are 100% solid black without underlying screen lines bleeding through.
  4. Opened Playback Information dialog during playback and verified no background text/UI ghosts through behind the modal.

Screenshots (if applicable)

Include screenshots or recordings for UI changes.

The Bug Is Back (pinkish lines above and below the video frame)

Shield_Screenshot_2026-07-24_22-02-14 Shield_Screenshot_2026-07-24_22-13-42 Shield_Screenshot_2026-07-24_22-17-14 Shield_Screenshot_2026-07-24_22-17-26

The Bug Is Defeated (solid black above and below the video frame)

Shield_Screenshot_2026-07-25_02-44-50 Shield_Screenshot_2026-07-25_02-46-00 Shield_Screenshot_2026-07-25_02-46-54

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

Add a Positioned.fill(child: ColoredBox(color: Colors.black)) at index 0 of
VideoPlayerScreen's root Stack. This prevents underlying route bleed-through
along letterbox borders for non-standard aspect ratio videos (e.g., 1920x804 / 2.39:1)
and eliminates background UI ghosting when modal dialogs are open during playback.
@mattsigal mattsigal self-assigned this Jul 25, 2026
@RadicalMuffinMan
RadicalMuffinMan merged commit 92fddc1 into Moonfin-Client:main Jul 26, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI] Playback controls dont hide bottom edge

2 participants