Skip to content

Commit 1192667

Browse files
authored
[web] Fix extra canvas generation due to context access (flutter#17710)
* Fix extra canvas generation due to context access * add comment * address review comment
1 parent 6d17ce6 commit 1192667

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

lib/web_ui/lib/src/engine/bitmap_canvas.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,11 @@ class BitmapCanvas extends EngineCanvas {
489489
@override
490490
void drawParagraph(EngineParagraph paragraph, ui.Offset offset) {
491491
assert(paragraph._isLaidOut);
492-
html.CanvasRenderingContext2D ctx = _canvasPool.context;
493492
final ParagraphGeometricStyle style = paragraph._geometricStyle;
494493

495494
if (paragraph._drawOnCanvas && _childOverdraw == false) {
495+
// !Do not move this assignment above this if clause since, accessing
496+
// context will generate extra <canvas> tags.
496497
final List<EngineLineMetrics> lines = paragraph._measurementResult.lines;
497498

498499
final SurfacePaintData backgroundPaint = paragraph._background?.paintData;
@@ -503,6 +504,7 @@ class BitmapCanvas extends EngineCanvas {
503504
}
504505

505506
if (style != _cachedLastStyle) {
507+
html.CanvasRenderingContext2D ctx = _canvasPool.context;
506508
ctx.font = style.cssFontString;
507509
_cachedLastStyle = style;
508510
}

0 commit comments

Comments
 (0)