mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-15 06:42:31 +00:00
On macOS rfd makes its panel with +[NSOpenPanel openPanel], and objc2's binding panics when AppKit returns nil. The commands' dialogs open at the end of the frame, outside the engine's command guard, so the panic unwound into winit's AppKit callback and the app quit. Every rfd call in the desktop app now goes through file_dialogs::guarded: on the main thread only, with a panic while the dialog is made turned into an error. The commands' dialogs answer DialogDone with Err and the status line says why; the panels' blocking pickers count as cancelled and report through the status line too.