fix: dialog file filters and macOS app bundles (#47840)
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
parent
4a81ae7954
commit
b180cfee6c
1 changed files with 12 additions and 0 deletions
|
@ -122,6 +122,18 @@ void SetAllowedFileTypes(NSSavePanel* dialog, const Filters& filters) {
|
|||
if (ext == "*") {
|
||||
[content_types_set addObject:[UTType typeWithFilenameExtension:@"*"]];
|
||||
break;
|
||||
} else if (ext == "app") {
|
||||
// This handles a bug on macOS where the "app" extension by default
|
||||
// maps to "com.apple.application-file", which is for an Application
|
||||
// file (older single-file carbon based apps), and not modern
|
||||
// Application Bundles (multi file packages as you'd see for all modern
|
||||
// applications).
|
||||
UTType* superType =
|
||||
[UTType typeWithIdentifier:@"com.apple.application-bundle"];
|
||||
if (UTType* utt = [UTType typeWithFilenameExtension:@"app"
|
||||
conformingToType:superType]) {
|
||||
[content_types_set addObject:utt];
|
||||
}
|
||||
} else {
|
||||
if (UTType* utt = [UTType typeWithFilenameExtension:@(ext.c_str())])
|
||||
[content_types_set addObject:utt];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue