From da99f6d13860790b8c9a2244f0510a2563c1d9a8 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Fri, 13 May 2022 11:57:13 +0900 Subject: [PATCH] minor fixes --- lib/utils/constants.dart | 2 ++ lib/widgets/common/grid/header.dart | 2 +- lib/widgets/common/grid/sliver.dart | 2 +- lib/widgets/viewer/info/common.dart | 9 ++++++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/utils/constants.dart b/lib/utils/constants.dart index e10bd361f..443e47935 100644 --- a/lib/utils/constants.dart +++ b/lib/utils/constants.dart @@ -29,6 +29,8 @@ class Constants { // Pop Directional Isolate static const pdi = '\u2069'; + static const zwsp = '\u200B'; + static const overlayUnknown = '—'; // em dash static final pointNemo = LatLng(-48.876667, -123.393333); diff --git a/lib/widgets/common/grid/header.dart b/lib/widgets/common/grid/header.dart index 070cdfbe2..2c43205d5 100644 --- a/lib/widgets/common/grid/header.dart +++ b/lib/widgets/common/grid/header.dart @@ -56,7 +56,7 @@ class SectionHeader extends StatelessWidget { ), ), // TODO TLAD [flutter 3] remove this zero-width span when this is fixed: https://github.com/flutter/flutter/issues/103615 - TextSpan(text: '\u200B' * 3, style: Constants.titleTextStyle), + TextSpan(text: Constants.zwsp * 3, style: Constants.titleTextStyle), TextSpan( text: title, style: Constants.titleTextStyle, diff --git a/lib/widgets/common/grid/sliver.dart b/lib/widgets/common/grid/sliver.dart index d7acd1734..dffeeb407 100644 --- a/lib/widgets/common/grid/sliver.dart +++ b/lib/widgets/common/grid/sliver.dart @@ -78,7 +78,7 @@ class _RenderSliverKnownExtentBoxAdaptor extends RenderSliverMultiBoxAdaptor { SectionLayout? sectionAtOffset(double scrollOffset) => sectionLayouts.firstWhereOrNull((section) => section.hasChildAtOffset(scrollOffset)) ?? sectionLayouts.lastOrNull; double indexToLayoutOffset(int index) { - return (sectionAtIndex(index) ?? sectionLayouts.last).indexToLayoutOffset(index); + return (sectionAtIndex(index) ?? sectionLayouts.lastOrNull)?.indexToLayoutOffset(index) ?? 0; } int getMinChildIndexForScrollOffset(double scrollOffset) { diff --git a/lib/widgets/viewer/info/common.dart b/lib/widgets/viewer/info/common.dart index c5c2667ed..d15eed12e 100644 --- a/lib/widgets/viewer/info/common.dart +++ b/lib/widgets/viewer/info/common.dart @@ -130,7 +130,14 @@ class _InfoRowGroupState extends State { // and each span respects the directionality of its inner text only return [ TextSpan(text: '${Constants.fsi}$key${Constants.pdi}', style: _keyStyle), - WidgetSpan(child: SizedBox(width: thisSpaceSize)), + WidgetSpan( + child: SizedBox( + width: thisSpaceSize, + // as of Flutter v3.0.0, the underline decoration from the following `TextSpan` + // is applied to the `WidgetSpan` too, so we add a dummy `Text` as a workaround + child: const Text(''), + ), + ), TextSpan(text: '${Constants.fsi}$value${Constants.pdi}', style: style, recognizer: recognizer), ]; },