From c2ddde7c0ea0da5c08efc2f1becd7e501df87672 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Mon, 14 Sep 2026 16:41:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=AD=97=E4=BD=93=E5=8C=B9=E9=85=8D):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=97=E4=BD=93=E5=9B=9E=E9=80=80=E5=8F=97?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E5=BD=B1=E5=93=8D=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ofdgo_font_fs.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ofdgo_font_fs.go b/ofdgo_font_fs.go index bb848d7..dfaa690 100644 --- a/ofdgo_font_fs.go +++ b/ofdgo_font_fs.go @@ -190,6 +190,18 @@ func (fsys *FontFS) matchStyle(names []string, bold, italic bool) []fontFileMatc func fontFileMatches(candidates []fontFileCandidate, names []string, bold, italic bool) []fontFileMatch { matches := make([]fontFileMatch, 0, len(candidates)) seen := make(map[string]int, len(candidates)) + if len(names) == 0 { + for _, name := range fontDefaultSystemNames() { + for _, match := range fontFileMatches(candidates, []string{name}, bold, italic) { + key := strings.ToLower(match.name) + if _, ok := seen[key]; !ok { + seen[key] = len(matches) + matches = append(matches, match) + } + } + } + return matches + } for i, name := range names { if name == "" { continue @@ -206,9 +218,6 @@ func fontFileMatches(candidates []fontFileCandidate, names []string, bold, itali } } } - if len(names) == 0 { - names = fontDefaultSystemNames() - } for _, matcher := range newFontPatternMatchers(fontFilePatterns(names...)) { for _, file := range candidates { rank := matcher.rankCandidate(file)