From ddad6f16352f3a103329d2531505bd2c87a7462a Mon Sep 17 00:00:00 2001 From: Dennis Kugelmann Date: Fri, 13 Jan 2023 12:58:27 +0100 Subject: [PATCH] Fix copying/applying font fallback with package (#118393) * Add test to check that package prefix of font fallback is not duplicated * Fix duplicate package prefix of font family fallback * Add test to check that package prefix of font fallback is not duplicated * Fix duplicate package prefix of font family fallback --- packages/flutter/lib/src/painting/text_style.dart | 4 ++-- .../flutter/test/painting/text_style_test.dart | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/flutter/lib/src/painting/text_style.dart b/packages/flutter/lib/src/painting/text_style.dart index 2afec743703b..1f7f88929bf4 100644 --- a/packages/flutter/lib/src/painting/text_style.dart +++ b/packages/flutter/lib/src/painting/text_style.dart @@ -897,7 +897,7 @@ class TextStyle with Diagnosticable { decorationThickness: decorationThickness ?? this.decorationThickness, debugLabel: newDebugLabel, fontFamily: fontFamily ?? _fontFamily, - fontFamilyFallback: fontFamilyFallback ?? this.fontFamilyFallback, + fontFamilyFallback: fontFamilyFallback ?? _fontFamilyFallback, package: package ?? _package, overflow: overflow ?? this.overflow, ); @@ -991,7 +991,7 @@ class TextStyle with Diagnosticable { color: foreground == null ? color ?? this.color : null, backgroundColor: background == null ? backgroundColor ?? this.backgroundColor : null, fontFamily: fontFamily ?? _fontFamily, - fontFamilyFallback: fontFamilyFallback ?? this.fontFamilyFallback, + fontFamilyFallback: fontFamilyFallback ?? _fontFamilyFallback, fontSize: fontSize == null ? null : fontSize! * fontSizeFactor + fontSizeDelta, fontWeight: fontWeight == null ? null : FontWeight.values[(fontWeight!.index + fontWeightDelta).clamp(0, FontWeight.values.length - 1)], // ignore_clamp_double_lint fontStyle: fontStyle ?? this.fontStyle, diff --git a/packages/flutter/test/painting/text_style_test.dart b/packages/flutter/test/painting/text_style_test.dart index 1fff41625124..910d52a964a9 100644 --- a/packages/flutter/test/painting/text_style_test.dart +++ b/packages/flutter/test/painting/text_style_test.dart @@ -302,6 +302,20 @@ void main() { const TextStyle s10 = TextStyle(fontFamilyFallback: [], package: 'p'); expect(s10.fontFamilyFallback, []); + + // Ensure that package prefix is not duplicated after copying. + final TextStyle s11 = s8.copyWith(); + expect(s11.fontFamilyFallback![0], 'packages/p/test'); + expect(s11.fontFamilyFallback![1], 'packages/p/test2'); + expect(s11.fontFamilyFallback!.length, 2); + expect(s8, s11); + + // Ensure that package prefix is not duplicated after applying. + final TextStyle s12 = s8.apply(); + expect(s12.fontFamilyFallback![0], 'packages/p/test'); + expect(s12.fontFamilyFallback![1], 'packages/p/test2'); + expect(s12.fontFamilyFallback!.length, 2); + expect(s8, s12); }); test('TextStyle package font merge', () {