From 31d03d5058a08a1e599eab6f64911a0fc0210c90 Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Fri, 23 Sep 2022 06:26:21 +0800 Subject: [PATCH] `PerformanceOverlay`'s multiple fields are not updated when the user wants to update it (#112039) --- .../lib/src/widgets/performance_overlay.dart | 4 ++- .../widgets/performance_overlay_test.dart | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/widgets/performance_overlay.dart b/packages/flutter/lib/src/widgets/performance_overlay.dart index 6b36a4469e..352d4ae4fa 100644 --- a/packages/flutter/lib/src/widgets/performance_overlay.dart +++ b/packages/flutter/lib/src/widgets/performance_overlay.dart @@ -115,6 +115,8 @@ class PerformanceOverlay extends LeafRenderObjectWidget { void updateRenderObject(BuildContext context, RenderPerformanceOverlay renderObject) { renderObject ..optionsMask = optionsMask - ..rasterizerThreshold = rasterizerThreshold; + ..rasterizerThreshold = rasterizerThreshold + ..checkerboardRasterCacheImages = checkerboardRasterCacheImages + ..checkerboardOffscreenLayers = checkerboardOffscreenLayers; } } diff --git a/packages/flutter/test/widgets/performance_overlay_test.dart b/packages/flutter/test/widgets/performance_overlay_test.dart index 61f0003081..8c337f1182 100644 --- a/packages/flutter/test/widgets/performance_overlay_test.dart +++ b/packages/flutter/test/widgets/performance_overlay_test.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:flutter/src/rendering/performance_overlay.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -10,4 +11,30 @@ void main() { await tester.pumpWidget(const PerformanceOverlay()); await tester.pumpWidget(PerformanceOverlay.allEnabled()); }); + + testWidgets('update widget field checkerboardRasterCacheImages', + (WidgetTester tester) async { + await tester.pumpWidget(const PerformanceOverlay()); + await tester.pumpWidget( + const PerformanceOverlay(checkerboardRasterCacheImages: true)); + final Finder finder = find.byType(PerformanceOverlay); + expect( + tester + .renderObject(finder) + .checkerboardRasterCacheImages, + true); + }); + + testWidgets('update widget field checkerboardOffscreenLayers', + (WidgetTester tester) async { + await tester.pumpWidget(const PerformanceOverlay()); + await tester.pumpWidget( + const PerformanceOverlay(checkerboardOffscreenLayers: true)); + final Finder finder = find.byType(PerformanceOverlay); + expect( + tester + .renderObject(finder) + .checkerboardOffscreenLayers, + true); + }); }