From 8f40f8126ef67d0976abbdb854782015081e6f96 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Tue, 22 Apr 2025 11:32:15 -0500 Subject: [PATCH] fix: file dialog filters not working correctly (#46722) fix: fix file dialog filters not working correctly If someone sets an `All filter` with `*` at the start of the filters all upcoming filters will be shifted and thus labels won't fit to the extensions they actually filter. Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Kolja Lampe --- shell/browser/ui/file_dialog_linux.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shell/browser/ui/file_dialog_linux.cc b/shell/browser/ui/file_dialog_linux.cc index ad6524877830..404aead64b5d 100644 --- a/shell/browser/ui/file_dialog_linux.cc +++ b/shell/browser/ui/file_dialog_linux.cc @@ -44,14 +44,14 @@ ui::SelectFileDialog::FileTypeInfo GetFilterInfo(const Filters& filters) { ui::SelectFileDialog::FileTypeInfo file_type_info; for (const auto& [name, extension_group] : filters) { - file_type_info.extension_description_overrides.push_back( - base::UTF8ToUTF16(name)); - const bool has_all_files_wildcard = std::ranges::any_of( extension_group, [](const auto& ext) { return ext == "*"; }); + if (has_all_files_wildcard) { file_type_info.include_all_files = true; } else { + file_type_info.extension_description_overrides.push_back( + base::UTF8ToUTF16(name)); file_type_info.extensions.emplace_back(extension_group); } }