Skip to content

Fix fullscreen scaling when going fullscreen before Run#231

Merged
LinuxJedi merged 1 commit into
LinuxJedi:mainfrom
hobbo91:fix/fullscreen-launcher-run
Jul 20, 2026
Merged

Fix fullscreen scaling when going fullscreen before Run#231
LinuxJedi merged 1 commit into
LinuxJedi:mainfrom
hobbo91:fix/fullscreen-launcher-run

Conversation

@hobbo91

@hobbo91 hobbo91 commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Going fullscreen before starting emulation broke the scaling. Launch Copperline, hit fullscreen while the configuration screen is still up, then Run, and the machine renders small in the top-left with the rest of the screen black. Starting emulation first and going fullscreen afterwards was always fine.

resize_for_active_panel asks the window for a canvas-sized inner size whenever a panel opens or closes. On a fullscreen window that doesn't resize anything, it just shrinks the drawable into a corner. It's skipped now while the window is fullscreen, so the display-sized surface stands and the presentation scales into it, which is what the working case was already doing.

Tested on all three platforms: macOS and Windows both showed the bug and are fixed by this. Linux was never affected — the window manager owns fullscreen geometry there and ignores the resize request either way.

Run is the obvious way to hit this, but the same call happens on close panel, open launcher, state load and a pixel-aspect change.

Screenshot 2026-07-19 at 22 48 58 Screenshot 2026-07-19 at 22 48 25

Going fullscreen before starting emulation broke the scaling: the machine
rendered small in the top-left with the rest of the screen black. Starting
emulation first and going fullscreen afterwards was fine.

resize_for_active_panel asks the window for a canvas-sized inner size whenever
a panel opens or closes. On a fullscreen window that resizes nothing and just
shrinks the drawable into a corner (macOS and Windows; Linux window managers
ignore the request). Skip it while fullscreen, so the display-sized surface
stands and the presentation scales into it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes an incorrect scaling/layout state when entering fullscreen before starting emulation (e.g., fullscreen on launcher/config screen, then “Run”), which previously caused the rendered output to appear small in the top-left with the remainder black on macOS/Windows.

Changes:

  • Skip resize_for_active_panel()’s request_inner_size() call while the window is fullscreen to avoid shrinking the drawable surface into a corner.
  • Add an inline rationale comment documenting the platform behavior differences (macOS/Windows affected; Linux ignores the resize request).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@LinuxJedi LinuxJedi left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch!

@LinuxJedi
LinuxJedi merged commit c4178a3 into LinuxJedi:main Jul 20, 2026
14 checks passed
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.

3 participants