diff --git a/m133/modules/skparagraph/src/ParagraphImpl.cpp b/m133/modules/skparagraph/src/ParagraphImpl.cpp index 5fa7acd6927c2c7d46e3a92694368ab8ff95fe3a..d514ff2b91c99a90b6c44a9c432681aaea353f1d 100644 --- a/m133/modules/skparagraph/src/ParagraphImpl.cpp +++ b/m133/modules/skparagraph/src/ParagraphImpl.cpp @@ -627,7 +627,9 @@ void ParagraphImpl::splitRuns() { void ParagraphImpl::paint(SkCanvas* canvas, SkScalar x, SkScalar y) { #ifdef ENABLE_TEXT_ENHANCE TEXT_TRACE_FUNC(); - fState = kDrawn; + if (fState >= kFormatted) { + fState = kDrawn; + } #endif CanvasParagraphPainter painter(canvas); paint(&painter, x, y); @@ -636,7 +638,9 @@ void ParagraphImpl::paint(SkCanvas* canvas, SkScalar x, SkScalar y) { void ParagraphImpl::paint(ParagraphPainter* painter, SkScalar x, SkScalar y) { #ifdef ENABLE_TEXT_ENHANCE TEXT_TRACE_FUNC(); - fState = kDrawn; + if (fState >= kFormatted) { + fState = kDrawn; + } // Reset all text style vertical shift for (Block& block : fTextStyles) { block.fStyle.setVerticalAlignShift(0.0); @@ -653,7 +657,9 @@ void ParagraphImpl::paint(ParagraphPainter* painter, SkScalar x, SkScalar y) { #ifdef ENABLE_TEXT_ENHANCE void ParagraphImpl::paint(ParagraphPainter* painter, RSPath* path, SkScalar hOffset, SkScalar vOffset) { TEXT_TRACE_FUNC(); - fState = kDrawn; + if (fState >= kFormatted) { + fState = kDrawn; + } auto& style = fTextStyles[0].fStyle; float align = 0.0f; switch (paragraphStyle().getTextAlign()) { diff --git a/modules/skparagraph/src/ParagraphImpl.cpp b/modules/skparagraph/src/ParagraphImpl.cpp index d71b08566f36ebbd14b852235e29b5da00779d94..a829c688318f68041c603e416ec79fd1aa655a05 100644 --- a/modules/skparagraph/src/ParagraphImpl.cpp +++ b/modules/skparagraph/src/ParagraphImpl.cpp @@ -608,7 +608,9 @@ void ParagraphImpl::splitRuns() { void ParagraphImpl::paint(SkCanvas* canvas, SkScalar x, SkScalar y) { #ifdef OHOS_SUPPORT TEXT_TRACE_FUNC(); - fState = kDrawn; + if (fState >= kFormatted) { + fState = kDrawn; + } #endif CanvasParagraphPainter painter(canvas); paint(&painter, x, y); @@ -617,7 +619,9 @@ void ParagraphImpl::paint(SkCanvas* canvas, SkScalar x, SkScalar y) { void ParagraphImpl::paint(ParagraphPainter* painter, SkScalar x, SkScalar y) { #ifdef OHOS_SUPPORT TEXT_TRACE_FUNC(); - fState = kDrawn; + if (fState >= kFormatted) { + fState = kDrawn; + } // Reset all text style vertical shift for (Block& block : fTextStyles) { block.fStyle.setVerticalAlignShift(0.0); @@ -634,7 +638,9 @@ void ParagraphImpl::paint(ParagraphPainter* painter, SkScalar x, SkScalar y) { void ParagraphImpl::paint(ParagraphPainter* painter, RSPath* path, SkScalar hOffset, SkScalar vOffset) { #ifdef OHOS_SUPPORT TEXT_TRACE_FUNC(); - fState = kDrawn; + if (fState >= kFormatted) { + fState = kDrawn; + } #endif auto& style = fTextStyles[0].fStyle; float align = 0.0f;