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
{{ message }}
Repository navigation
macOS: where the "Ask every time" save dialog appears #596
Follow-up to #572 ("Ask every time", #521): check the save and folder dialogs on macOS.
The dialog's owner is a 1×1 transparent, undecorated window. On macOS an owned NSSavePanel / NSOpenPanel may attach to it as a sheet, so it could show in an odd place (near the cursor, on another Space) or behind other apps. Nobody has tried it on a Mac yet.
To check, with a preset set to "Save to: Ask every time":
drop one file on the donut from Finder (save dialog, starts in the source's folder);
drop several files (folder dialog, asked once);
the same with the main window open and with it closed;
Cancel starts nothing.
If it misplaces the dialog, one option is to use the main window as the owner when it's visible, and no owner (a free-standing panel) otherwise.
Update for 2.3.0: Copy to folder and Move to folder with Save to: Ask every time go through the same dialogs (WindowService.AskSaveLocationAsync, same 1×1 host window), so they belong in the Mac check too:
one file → save dialog (no overwrite prompt for copies), several → folder dialog;
a file dragged from a browser still asks for these two (other presets save to Downloads);
when the source's folder is gone, the dialog starts in Downloads.
I tested the "Ask every time" save dialog behavior on macOS (Apple Silicon) across the requested scenarios. Here are the findings:
1. Presentation & Placement
Normal Mode (Windowed / Desktop):
The dialog does not attach as an odd sheet or cling to an invisible dot. It appears cleanly centered on the screen as a standard, standalone native dialog window (NSSavePanel / NSOpenPanel).
It starts in the source file's directory as expected.
Saving to a location succeeds, and pressing Cancel cleanly cancels the operation without triggering any background processing.
Full-Screen Space Transition (Important Finding):
When Finder or the active application is in macOS Full-Screen mode (which macOS hosts in its own dedicated Space), dropping a file onto the donut causes macOS to immediately slide/switch spaces away from the full-screen app back to the Desktop Space where the host window and dialog are created.
Your suspicion about "it could show in an odd place (on another Space)" was spot on: because the invisible 1x1 host window is spawned without full-screen auxiliary collection behaviors, macOS forces a Space switch to reveal the desktop.
2. Multi-File Drop & Main Window State
Dropping multiple files opens the native Folder picker dialog once for the batch instead of repeatedly asking per file.
Behavior remains consistent whether Filee's main window is currently open in the background or closed/hidden to the menu bar.
Here is a screen recording demonstrating the dialog appearance, functionality, and the full-screen Space transition: https://youtu.be/_0Rqt9fopjY
Thanks, @AzrielTheHellrazor, that's exactly what we needed! So the normal case is fine:
Placement: a standalone, centred dialog that starts in the source's folder.
Several files: one folder picker.
Cancel: starts nothing.
Main window open or closed: no difference.
The one problem is full screen: macOS leaves the full-screen Space, because the 1×1 host window (WindowService.AskSaveLocationAsync) has no full-screen collection behaviour. The likely fix is to give that host NSWindowCollectionBehaviorFullScreenAuxiliary and MoveToActiveSpace, as the donut's own window does, and to check that the panel then opens on the full-screen Space.
Would you like to take it as a PR? We can't try it here, and you've got the setup to check it. #1155 comes first, of course. If you'd rather not, just say so, and this stays open for it.
I have just pushed the requested updates and posted the test verification results on #1155. Once we finalize and wrap up that PR, I will dive straight into this issue, implement the full-screen auxiliary collection behavior for the host window, and submit a PR for it shortly.
Activity
KnifeLemon commentedon Nov 4, 2026
Update for 2.3.0: Copy to folder and Move to folder with Save to: Ask every time go through the same dialogs (
WindowService.AskSaveLocationAsync, same 1×1 host window), so they belong in the Mac check too:Still untested on a Mac.
KnifeLemon commentedon Nov 5, 2026
@AzrielTheHellrazor since you offered to test on macOS: could you try this one when you have a moment? Nobody has run it on a Mac yet.
Setup: a preset with Save to: Ask every time.
Please try:
Please tell us: where the dialog shows up (a sheet, near the cursor, behind other apps, on another Space), and a screenshot if it's in an odd place.
AzrielTheHellrazor commentedon Nov 6, 2026
Hi @KnifeLemon,
I tested the "Ask every time" save dialog behavior on macOS (Apple Silicon) across the requested scenarios. Here are the findings:
1. Presentation & Placement
Normal Mode (Windowed / Desktop):
NSSavePanel/NSOpenPanel).Full-Screen Space Transition (Important Finding):
hostwindow and dialog are created.1x1host window is spawned without full-screen auxiliary collection behaviors, macOS forces a Space switch to reveal the desktop.2. Multi-File Drop & Main Window State
Here is a screen recording demonstrating the dialog appearance, functionality, and the full-screen Space transition:
https://youtu.be/_0Rqt9fopjY
KnifeLemon commentedon Nov 6, 2026
Thanks, @AzrielTheHellrazor, that's exactly what we needed! So the normal case is fine:
The one problem is full screen: macOS leaves the full-screen Space, because the 1×1 host window (
WindowService.AskSaveLocationAsync) has no full-screen collection behaviour. The likely fix is to give that hostNSWindowCollectionBehaviorFullScreenAuxiliaryandMoveToActiveSpace, as the donut's own window does, and to check that the panel then opens on the full-screen Space.Would you like to take it as a PR? We can't try it here, and you've got the setup to check it. #1155 comes first, of course. If you'd rather not, just say so, and this stays open for it.
AzrielTheHellrazor commentedon Nov 6, 2026
Hi @KnifeLemon,
I would be more than happy to take this on!
I have just pushed the requested updates and posted the test verification results on #1155. Once we finalize and wrap up that PR, I will dive straight into this issue, implement the full-screen auxiliary collection behavior for the host window, and submit a PR for it shortly.
Thanks again!