You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switching between panes (Cleanup, Duplicates, Apps, History) in ContentView caused a visible layout glitch: a stray gap would appear
below the content, along with a shadow that rendered incorrectly for a
frame or two before settling.
Root cause
The Window scene for the main window declared both:
.fixedSize() and .windowResizability(.contentSize) are two
independent mechanisms that both try to size the window to fit its
content. With both active at once, they produced competing size
calculations on the same frame.
This became visible specifically on pane switches because each pane
has a very different intrinsic height — Cleanup includes a scrollable
list with a fixed height: 440, while Duplicates, Apps, and History are considerably shorter. Whenever pane changed, SwiftUI
had to recompute a very different content size, and the two competing
resize paths fell out of sync for a moment, leaving a rendering
artifact (gap + wrong shadow) before the window caught up.
The same ContentView is also used inside a MenuBarExtra with .menuBarExtraStyle(.window), which is generally more sensitive to
abrupt height changes, making the glitch more noticeable there.
Fix
Removed the redundant .fixedSize() modifier from the Window scene
and let .windowResizability(.contentSize) be the single source of
truth for sizing the window to its content:
With only one sizing mechanism in play, pane switches now resize
cleanly with no leftover gap or shadow artifact.
Testing
Switched between all four panes (Cleanup, Duplicates, Apps, History) repeatedly in both the menu bar popover and the standalone
window — no gap or shadow glitch observed.
Confirmed the window still sizes correctly to content on first
appearance and after scans/deletes that change the list height.
Problem
Switching between panes (
Cleanup,Duplicates,Apps,History) inContentViewcaused a visible layout glitch: a stray gap would appearbelow the content, along with a shadow that rendered incorrectly for a
frame or two before settling.
Root cause
The
Windowscene for the main window declared both:.fixedSize()and.windowResizability(.contentSize)are twoindependent mechanisms that both try to size the window to fit its
content. With both active at once, they produced competing size
calculations on the same frame.
This became visible specifically on pane switches because each pane
has a very different intrinsic height —
Cleanupincludes a scrollablelist with a fixed
height: 440, whileDuplicates,Apps, andHistoryare considerably shorter. Wheneverpanechanged, SwiftUIhad to recompute a very different content size, and the two competing
resize paths fell out of sync for a moment, leaving a rendering
artifact (gap + wrong shadow) before the window caught up.
The same
ContentViewis also used inside aMenuBarExtrawith.menuBarExtraStyle(.window), which is generally more sensitive toabrupt height changes, making the glitch more noticeable there.
Fix
Removed the redundant
.fixedSize()modifier from theWindowsceneand let
.windowResizability(.contentSize)be the single source oftruth for sizing the window to its content:
With only one sizing mechanism in play, pane switches now resize
cleanly with no leftover gap or shadow artifact.
Testing
Cleanup,Duplicates,Apps,History) repeatedly in both the menu bar popover and the standalonewindow — no gap or shadow glitch observed.
appearance and after scans/deletes that change the list height.
Screen.Recording.2026-08-19.at.09.27.54.mov