Skip to content

Show the macOS viewer window on a normal launch - #774

Merged
SimonCropp merged 2 commits into
mainfrom
fix-mac-viewer-window-never-shown
Aug 21, 2026
Merged

Show the macOS viewer window on a normal launch#774
SimonCropp merged 2 commits into
mainfrom
fix-mac-viewer-window-never-shown

Conversation

@SimonCropp

Copy link
Copy Markdown
Member

makeWindow() built the NSWindow, centred it and attached the scroller, but never ordered it front. The only makeKeyAndOrderFront was in show(), reached from deview_set_hidden(0) and deview_focus, which the managed loop issues only while draining window commands off the socket.

So the ordinary launch — a patch on stdin, no second patch behind it — presented at 60 fps into a window that was never on screen: a Dock icon with nothing under it until another patch happened to arrive. CI never saw it because the pixel tests capture with hidden: true, which is the one path that deliberately builds no window at all.

A visible open now goes through show() as well, so ordering front lives in one place rather than being a property of how the process was driven.

Note that the committed dylibs under src/DiffEngineViewer.Mac/runtimes are not rebuilt by this commit; they need a build-native run.

makeWindow() built the NSWindow, centred it and attached the scroller, but never
ordered it front. The only makeKeyAndOrderFront was in show(), reached from
deview_set_hidden(0) and deview_focus, which the managed loop issues only while
draining window commands off the socket.

So the ordinary launch — a patch on stdin, no second patch behind it — presented
at 60 fps into a window that was never on screen: a Dock icon with nothing under
it until another patch happened to arrive. CI never saw it because the pixel
tests capture with hidden: true, which is the one path that deliberately builds
no window at all.

A visible open now goes through show() as well, so ordering front lives in one
place rather than being a property of how the process was driven.

Note that the committed dylibs under src/DiffEngineViewer.Mac/runtimes are not
rebuilt by this commit; they need a build-native run.
@SimonCropp
SimonCropp merged commit a259569 into main Aug 21, 2026
12 checks passed
@SimonCropp
SimonCropp deleted the fix-mac-viewer-window-never-shown branch August 21, 2026 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant