@@ -100,7 +100,7 @@ class CkParagraphStyle implements ui.ParagraphStyle {
100
100
skTextStyle.heightMultiplier = height;
101
101
}
102
102
103
- skTextStyle.fontFamilies = _getEffectiveFontFamilies (fontFamily);
103
+ skTextStyle.fontFamilies = _computeCombinedFontFamilies (fontFamily);
104
104
105
105
return skTextStyle;
106
106
}
@@ -110,7 +110,7 @@ class CkParagraphStyle implements ui.ParagraphStyle {
110
110
final CkStrutStyle style = value as CkStrutStyle ;
111
111
final SkStrutStyleProperties skStrutStyle = SkStrutStyleProperties ();
112
112
skStrutStyle.fontFamilies =
113
- _getEffectiveFontFamilies (style._fontFamily, style._fontFamilyFallback);
113
+ _computeCombinedFontFamilies (style._fontFamily, style._fontFamilyFallback);
114
114
115
115
if (style._fontSize != null ) {
116
116
skStrutStyle.fontSize = style._fontSize;
@@ -222,7 +222,8 @@ class CkParagraphStyle implements ui.ParagraphStyle {
222
222
decorationStyle: null ,
223
223
decorationThickness: null ,
224
224
textBaseline: null ,
225
- fontFamilyFallback: null ,
225
+ originalFontFamilyFallback: null ,
226
+ effectiveFontFamilyFallback: null ,
226
227
letterSpacing: null ,
227
228
wordSpacing: null ,
228
229
locale: null ,
@@ -344,7 +345,8 @@ class CkTextStyle implements ui.TextStyle {
344
345
textBaseline: textBaseline,
345
346
originalFontFamily: fontFamily,
346
347
effectiveFontFamily: _computeEffectiveFontFamily (fontFamily),
347
- fontFamilyFallback: ui_web.debugEmulateFlutterTesterEnvironment ? null : fontFamilyFallback,
348
+ originalFontFamilyFallback: fontFamilyFallback,
349
+ effectiveFontFamilyFallback: ui_web.debugEmulateFlutterTesterEnvironment ? null : fontFamilyFallback,
348
350
fontSize: fontSize,
349
351
letterSpacing: letterSpacing,
350
352
wordSpacing: wordSpacing,
@@ -370,7 +372,8 @@ class CkTextStyle implements ui.TextStyle {
370
372
required this .textBaseline,
371
373
required this .originalFontFamily,
372
374
required this .effectiveFontFamily,
373
- required this .fontFamilyFallback,
375
+ required this .originalFontFamilyFallback,
376
+ required this .effectiveFontFamilyFallback,
374
377
required this .fontSize,
375
378
required this .letterSpacing,
376
379
required this .wordSpacing,
@@ -394,7 +397,8 @@ class CkTextStyle implements ui.TextStyle {
394
397
final ui.TextBaseline ? textBaseline;
395
398
final String ? originalFontFamily;
396
399
final String ? effectiveFontFamily;
397
- final List <String >? fontFamilyFallback;
400
+ final List <String >? originalFontFamilyFallback;
401
+ final List <String >? effectiveFontFamilyFallback;
398
402
final double ? fontSize;
399
403
final double ? letterSpacing;
400
404
final double ? wordSpacing;
@@ -423,7 +427,8 @@ class CkTextStyle implements ui.TextStyle {
423
427
textBaseline: other.textBaseline ?? textBaseline,
424
428
originalFontFamily: other.originalFontFamily ?? originalFontFamily,
425
429
effectiveFontFamily: other.effectiveFontFamily ?? effectiveFontFamily,
426
- fontFamilyFallback: other.fontFamilyFallback ?? fontFamilyFallback,
430
+ originalFontFamilyFallback: other.originalFontFamilyFallback ?? originalFontFamilyFallback,
431
+ effectiveFontFamilyFallback: other.effectiveFontFamilyFallback ?? effectiveFontFamilyFallback,
427
432
fontSize: other.fontSize ?? fontSize,
428
433
letterSpacing: other.letterSpacing ?? letterSpacing,
429
434
wordSpacing: other.wordSpacing ?? wordSpacing,
@@ -438,9 +443,9 @@ class CkTextStyle implements ui.TextStyle {
438
443
);
439
444
}
440
445
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 );
444
449
445
450
/// Lazy-initialized Skia style used to pass the style to Skia.
446
451
///
@@ -536,7 +541,7 @@ class CkTextStyle implements ui.TextStyle {
536
541
properties.locale = locale.toLanguageTag ();
537
542
}
538
543
539
- properties.fontFamilies = effectiveFontFamilies ;
544
+ properties.fontFamilies = combinedFontFamilies ;
540
545
541
546
if (fontWeight != null || fontStyle != null ) {
542
547
properties.fontStyle = toSkFontStyle (fontWeight, fontStyle);
@@ -607,7 +612,7 @@ class CkTextStyle implements ui.TextStyle {
607
612
&& other.background == background
608
613
&& other.foreground == foreground
609
614
&& listEquals< ui.Shadow > (other.shadows, shadows)
610
- && listEquals <String >(other.fontFamilyFallback, fontFamilyFallback )
615
+ && listEquals <String >(other.originalFontFamilyFallback, originalFontFamilyFallback )
611
616
&& listEquals< ui.FontFeature > (other.fontFeatures, fontFeatures)
612
617
&& listEquals< ui.FontVariation > (other.fontVariations, fontVariations);
613
618
}
@@ -617,7 +622,7 @@ class CkTextStyle implements ui.TextStyle {
617
622
final List <ui.Shadow >? shadows = this .shadows;
618
623
final List <ui.FontFeature >? fontFeatures = this .fontFeatures;
619
624
final List <ui.FontVariation >? fontVariations = this .fontVariations;
620
- final List <String >? fontFamilyFallback = this .fontFamilyFallback ;
625
+ final List <String >? fontFamilyFallback = originalFontFamilyFallback ;
621
626
return Object .hash (
622
627
color,
623
628
decoration,
@@ -648,31 +653,37 @@ class CkTextStyle implements ui.TextStyle {
648
653
649
654
@override
650
655
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;
676
687
}
677
688
}
678
689
@@ -1107,8 +1118,8 @@ class CkParagraphBuilder implements ui.ParagraphBuilder {
1107
1118
if (style.effectiveFontFamily != null ) {
1108
1119
fontFamilies.add (style.effectiveFontFamily! );
1109
1120
}
1110
- if (style.fontFamilyFallback != null ) {
1111
- fontFamilies.addAll (style.fontFamilyFallback ! );
1121
+ if (style.effectiveFontFamilyFallback != null ) {
1122
+ fontFamilies.addAll (style.effectiveFontFamilyFallback ! );
1112
1123
}
1113
1124
renderer.fontCollection.fontFallbackManager! .ensureFontsSupportText (text, fontFamilies);
1114
1125
_paragraphBuilder.addText (text);
@@ -1210,7 +1221,7 @@ class _CkParagraphPlaceholder {
1210
1221
final double offset;
1211
1222
}
1212
1223
1213
- List <String > _getEffectiveFontFamilies (String ? fontFamily,
1224
+ List <String > _computeCombinedFontFamilies (String ? fontFamily,
1214
1225
[List <String >? fontFamilyFallback]) {
1215
1226
final List <String > fontFamilies = < String > [];
1216
1227
if (fontFamily != null ) {
0 commit comments