mirror of
https://github.com/electron/electron.git
synced 2026-01-09 15:38:08 -05:00
fix: multiple extension filters on macOS (#23409)
This commit is contained in:
@@ -92,7 +92,16 @@ void SetAllowedFileTypes(NSSavePanel* dialog, const Filters& filters) {
|
||||
for (const Filter& filter : filters) {
|
||||
NSMutableSet* file_type_set = [NSMutableSet set];
|
||||
[filter_names addObject:@(filter.first.c_str())];
|
||||
for (const std::string& ext : filter.second) {
|
||||
for (std::string ext : filter.second) {
|
||||
// macOS is incapable of understanding multiple file extensions,
|
||||
// so we need to tokenize the extension that's been passed in.
|
||||
// We want to err on the side of allowing files, so we pass
|
||||
// along only the final extension ('tar.gz' => 'gz').
|
||||
auto pos = ext.rfind('.');
|
||||
if (pos != std::string::npos) {
|
||||
ext.erase(0, pos + 1);
|
||||
}
|
||||
|
||||
[file_type_set addObject:@(ext.c_str())];
|
||||
}
|
||||
[file_types_list addObject:[file_type_set allObjects]];
|
||||
|
||||
Reference in New Issue
Block a user