@@ -100,7 +100,7 @@ class CkParagraphStyle implements ui.ParagraphStyle {
100100 skTextStyle.heightMultiplier = height;
101101 }
102102
103- skTextStyle.fontFamilies = _getEffectiveFontFamilies (fontFamily);
103+ skTextStyle.fontFamilies = _computeCombinedFontFamilies (fontFamily);
104104
105105 return skTextStyle;
106106 }
@@ -110,7 +110,7 @@ class CkParagraphStyle implements ui.ParagraphStyle {
110110 final CkStrutStyle style = value as CkStrutStyle ;
111111 final SkStrutStyleProperties skStrutStyle = SkStrutStyleProperties ();
112112 skStrutStyle.fontFamilies =
113- _getEffectiveFontFamilies (style._fontFamily, style._fontFamilyFallback);
113+ _computeCombinedFontFamilies (style._fontFamily, style._fontFamilyFallback);
114114
115115 if (style._fontSize != null ) {
116116 skStrutStyle.fontSize = style._fontSize;
@@ -222,7 +222,8 @@ class CkParagraphStyle implements ui.ParagraphStyle {
222222 decorationStyle: null ,
223223 decorationThickness: null ,
224224 textBaseline: null ,
225- fontFamilyFallback: null ,
225+ originalFontFamilyFallback: null ,
226+ effectiveFontFamilyFallback: null ,
226227 letterSpacing: null ,
227228 wordSpacing: null ,
228229 locale: null ,
@@ -344,7 +345,8 @@ class CkTextStyle implements ui.TextStyle {
344345 textBaseline: textBaseline,
345346 originalFontFamily: fontFamily,
346347 effectiveFontFamily: _computeEffectiveFontFamily (fontFamily),
347- fontFamilyFallback: ui_web.debugEmulateFlutterTesterEnvironment ? null : fontFamilyFallback,
348+ originalFontFamilyFallback: fontFamilyFallback,
349+ effectiveFontFamilyFallback: ui_web.debugEmulateFlutterTesterEnvironment ? null : fontFamilyFallback,
348350 fontSize: fontSize,
349351 letterSpacing: letterSpacing,
350352 wordSpacing: wordSpacing,
@@ -370,7 +372,8 @@ class CkTextStyle implements ui.TextStyle {
370372 required this .textBaseline,
371373 required this .originalFontFamily,
372374 required this .effectiveFontFamily,
373- required this .fontFamilyFallback,
375+ required this .originalFontFamilyFallback,
376+ required this .effectiveFontFamilyFallback,
374377 required this .fontSize,
375378 required this .letterSpacing,
376379 required this .wordSpacing,
@@ -394,7 +397,8 @@ class CkTextStyle implements ui.TextStyle {
394397 final ui.TextBaseline ? textBaseline;
395398 final String ? originalFontFamily;
396399 final String ? effectiveFontFamily;
397- final List <String >? fontFamilyFallback;
400+ final List <String >? originalFontFamilyFallback;
401+ final List <String >? effectiveFontFamilyFallback;
398402 final double ? fontSize;
399403 final double ? letterSpacing;
400404 final double ? wordSpacing;
@@ -423,7 +427,8 @@ class CkTextStyle implements ui.TextStyle {
423427 textBaseline: other.textBaseline ?? textBaseline,
424428 originalFontFamily: other.originalFontFamily ?? originalFontFamily,
425429 effectiveFontFamily: other.effectiveFontFamily ?? effectiveFontFamily,
426- fontFamilyFallback: other.fontFamilyFallback ?? fontFamilyFallback,
430+ originalFontFamilyFallback: other.originalFontFamilyFallback ?? originalFontFamilyFallback,
431+ effectiveFontFamilyFallback: other.effectiveFontFamilyFallback ?? effectiveFontFamilyFallback,
427432 fontSize: other.fontSize ?? fontSize,
428433 letterSpacing: other.letterSpacing ?? letterSpacing,
429434 wordSpacing: other.wordSpacing ?? wordSpacing,
@@ -438,9 +443,9 @@ class CkTextStyle implements ui.TextStyle {
438443 );
439444 }
440445
441- /// Lazy-initialized list of font families sent to Skia.
442- late final List <String > effectiveFontFamilies =
443- _getEffectiveFontFamilies (effectiveFontFamily, fontFamilyFallback );
446+ /// Lazy-initialized combination of font family and font family fallback sent to Skia.
447+ late final List <String > combinedFontFamilies =
448+ _computeCombinedFontFamilies (effectiveFontFamily, effectiveFontFamilyFallback );
444449
445450 /// Lazy-initialized Skia style used to pass the style to Skia.
446451 ///
@@ -536,7 +541,7 @@ class CkTextStyle implements ui.TextStyle {
536541 properties.locale = locale.toLanguageTag ();
537542 }
538543
539- properties.fontFamilies = effectiveFontFamilies ;
544+ properties.fontFamilies = combinedFontFamilies ;
540545
541546 if (fontWeight != null || fontStyle != null ) {
542547 properties.fontStyle = toSkFontStyle (fontWeight, fontStyle);
@@ -607,7 +612,7 @@ class CkTextStyle implements ui.TextStyle {
607612 && other.background == background
608613 && other.foreground == foreground
609614 && listEquals< ui.Shadow > (other.shadows, shadows)
610- && listEquals <String >(other.fontFamilyFallback, fontFamilyFallback )
615+ && listEquals <String >(other.originalFontFamilyFallback, originalFontFamilyFallback )
611616 && listEquals< ui.FontFeature > (other.fontFeatures, fontFeatures)
612617 && listEquals< ui.FontVariation > (other.fontVariations, fontVariations);
613618 }
@@ -617,7 +622,7 @@ class CkTextStyle implements ui.TextStyle {
617622 final List <ui.Shadow >? shadows = this .shadows;
618623 final List <ui.FontFeature >? fontFeatures = this .fontFeatures;
619624 final List <ui.FontVariation >? fontVariations = this .fontVariations;
620- final List <String >? fontFamilyFallback = this .fontFamilyFallback ;
625+ final List <String >? fontFamilyFallback = originalFontFamilyFallback ;
621626 return Object .hash (
622627 color,
623628 decoration,
@@ -648,31 +653,37 @@ class CkTextStyle implements ui.TextStyle {
648653
649654 @override
650655 String toString () {
651- final List <String >? fontFamilyFallback = this .fontFamilyFallback;
652- final String ? originalFontFamily = this .originalFontFamily;
653- return 'TextStyle('
654- 'color: ${color ?? "unspecified" }, '
655- 'decoration: ${decoration ?? "unspecified" }, '
656- 'decorationColor: ${decorationColor ?? "unspecified" }, '
657- 'decorationStyle: ${decorationStyle ?? "unspecified" }, '
658- 'decorationThickness: ${decorationThickness ?? "unspecified" }, '
659- 'fontWeight: ${fontWeight ?? "unspecified" }, '
660- 'fontStyle: ${fontStyle ?? "unspecified" }, '
661- 'textBaseline: ${textBaseline ?? "unspecified" }, '
662- 'fontFamily: ${originalFontFamily != null && originalFontFamily .isNotEmpty ? originalFontFamily : "unspecified" }, '
663- 'fontFamilyFallback: ${fontFamilyFallback != null && fontFamilyFallback .isNotEmpty ? fontFamilyFallback : "unspecified" }, '
664- 'fontSize: ${fontSize ?? "unspecified" }, '
665- 'letterSpacing: ${letterSpacing != null ? "${letterSpacing }x" : "unspecified" }, '
666- 'wordSpacing: ${wordSpacing != null ? "${wordSpacing }x" : "unspecified" }, '
667- 'height: ${height != null ? "${height }x" : "unspecified" }, '
668- 'leadingDistribution: ${leadingDistribution ?? "unspecified" }, '
669- 'locale: ${locale ?? "unspecified" }, '
670- 'background: ${background ?? "unspecified" }, '
671- 'foreground: ${foreground ?? "unspecified" }, '
672- 'shadows: ${shadows ?? "unspecified" }, '
673- 'fontFeatures: ${fontFeatures ?? "unspecified" }, '
674- 'fontVariations: ${fontVariations ?? "unspecified" }'
675- ')' ;
656+ String result = super .toString ();
657+ assert (() {
658+ final List <String >? fontFamilyFallback = originalFontFamilyFallback;
659+ final double ? fontSize = this .fontSize;
660+ final double ? height = this .height;
661+ result = 'TextStyle('
662+ 'color: ${color ?? "unspecified" }, '
663+ 'decoration: ${decoration ?? "unspecified" }, '
664+ 'decorationColor: ${decorationColor ?? "unspecified" }, '
665+ 'decorationStyle: ${decorationStyle ?? "unspecified" }, '
666+ 'decorationThickness: ${decorationThickness ?? "unspecified" }, '
667+ 'fontWeight: ${fontWeight ?? "unspecified" }, '
668+ 'fontStyle: ${fontStyle ?? "unspecified" }, '
669+ 'textBaseline: ${textBaseline ?? "unspecified" }, '
670+ 'fontFamily: ${originalFontFamily ?? "unspecified" }, '
671+ 'fontFamilyFallback: ${fontFamilyFallback != null && fontFamilyFallback .isNotEmpty ? fontFamilyFallback : "unspecified" }, '
672+ 'fontSize: ${fontSize != null ? fontSize .toStringAsFixed (1 ) : "unspecified" }, '
673+ 'letterSpacing: ${letterSpacing != null ? "${letterSpacing }x" : "unspecified" }, '
674+ 'wordSpacing: ${wordSpacing != null ? "${wordSpacing }x" : "unspecified" }, '
675+ 'height: ${height != null ? "${height .toStringAsFixed (1 )}x" : "unspecified" }, '
676+ 'leadingDistribution: ${leadingDistribution ?? "unspecified" }, '
677+ 'locale: ${locale ?? "unspecified" }, '
678+ 'background: ${background ?? "unspecified" }, '
679+ 'foreground: ${foreground ?? "unspecified" }, '
680+ 'shadows: ${shadows ?? "unspecified" }, '
681+ 'fontFeatures: ${fontFeatures ?? "unspecified" }, '
682+ 'fontVariations: ${fontVariations ?? "unspecified" }'
683+ ')' ;
684+ return true ;
685+ }());
686+ return result;
676687 }
677688}
678689
@@ -1107,8 +1118,8 @@ class CkParagraphBuilder implements ui.ParagraphBuilder {
11071118 if (style.effectiveFontFamily != null ) {
11081119 fontFamilies.add (style.effectiveFontFamily! );
11091120 }
1110- if (style.fontFamilyFallback != null ) {
1111- fontFamilies.addAll (style.fontFamilyFallback ! );
1121+ if (style.effectiveFontFamilyFallback != null ) {
1122+ fontFamilies.addAll (style.effectiveFontFamilyFallback ! );
11121123 }
11131124 renderer.fontCollection.fontFallbackManager! .ensureFontsSupportText (text, fontFamilies);
11141125 _paragraphBuilder.addText (text);
@@ -1210,7 +1221,7 @@ class _CkParagraphPlaceholder {
12101221 final double offset;
12111222}
12121223
1213- List <String > _getEffectiveFontFamilies (String ? fontFamily,
1224+ List <String > _computeCombinedFontFamilies (String ? fontFamily,
12141225 [List <String >? fontFamilyFallback]) {
12151226 final List <String > fontFamilies = < String > [];
12161227 if (fontFamily != null ) {
0 commit comments