Fix #433: open only file URLs handed to the app (macOS 27 turns an https URL into a path)

`application:openURLs:` can pass URLs that aren't files, and on macOS 27 `to_file_path()` returns
the path of an https URL ("/a.svg"), so it was queued as a document. Keep the file URLs
(`isFileURL`) before converting; `opened_files_wait_for_the_ui` passes again on macOS 27.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
imachusandClaude Opus 5.5 committed 2026-10-08 23:54:22 +09:00
1 parent 99a5318fe4
commit b7644d31f2
1 file changed
+2 -1
+2 -1
View File
@@ -78,7 +78,8 @@ fn add_open_urls_method() {
/// Queue the files among `urls` and wake the UI. Never panics: it runs inside AppKit.
extern "C-unwind" fn open_urls(_delegate: &AnyObject, _cmd: Sel, _app: &AnyObject, urls: &NSArray<NSURL>) {
let paths = urls.iter().filter_map(|u| u.to_file_path()).map(|p| p.to_string_lossy().into_owned());
// Only file URLs: macOS 27 turns an https URL's path into a file path too (#433).
let paths = urls.iter().filter(|u| u.isFileURL()).filter_map(|u| u.to_file_path()).map(|p| p.to_string_lossy().into_owned());
PENDING.lock().unwrap_or_else(PoisonError::into_inner).extend(paths);
if let Some(ctx) = UI.get() {
ctx.request_repaint();