From 27d877c1753c5f1b9a7b32680eef52f56d46fa59 Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 1 Oct 2024 15:18:09 +0100 Subject: [PATCH] DirectWrite: Return styles in the order reported by the system This is more likely to place the regular/default style first in the list of styles. --- .../native/juce_DirectWriteTypeface_windows.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/juce_graphics/native/juce_DirectWriteTypeface_windows.cpp b/modules/juce_graphics/native/juce_DirectWriteTypeface_windows.cpp index bc58c5c629..dee0481ff9 100644 --- a/modules/juce_graphics/native/juce_DirectWriteTypeface_windows.cpp +++ b/modules/juce_graphics/native/juce_DirectWriteTypeface_windows.cpp @@ -153,12 +153,18 @@ public: if (FAILED (collection->GetFontFamily (fontIndex, fontFamily.resetAndGetPointerAddress())) || fontFamily == nullptr) continue; - std::set results; + std::set uniqueResults; + StringArray orderedResults; for (const auto& font : getAllFontsInFamily (fontFamily)) - results.insert (getFontFaceName (font)); + { + const auto name = getFontFaceName (font); - return stringArrayFromRange (results); + if (uniqueResults.insert (name).second) + orderedResults.add (name); + } + + return orderedResults; } return {};