Show the macOS viewer window on a normal launch - #774
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.