From 7f56ccaa9ec5f077df1f3a9594943b00137c7721 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 16 Mar 2023 06:56:02 +0100 Subject: [PATCH] TextEditor: avoid painting annotations over suggestions Blocks with suggestions are longer than without the suggestion. So we have to calculate the annotation start position based on the reaplcement and not the actual document layout. Change-Id: I32ce81134e1146dd28ae11a70356a98c75529236 Reviewed-by: Reviewed-by: Marcus Tillmanns --- src/plugins/texteditor/texteditor.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index b614a18e736..b92d848d4ea 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -4061,7 +4061,13 @@ static TextMarks availableMarks(const TextMarks &marks, QRectF TextEditorWidgetPrivate::getLastLineLineRect(const QTextBlock &block) { - const QTextLayout *layout = block.layout(); + QTextLayout *layout = nullptr; + if (block != m_suggestionBlock) + layout = block.layout(); + else if (QTextDocument *replacement = TextDocumentLayout::replacementDocument(block)) + layout = replacement->firstBlock().layout(); + + QTC_ASSERT(layout, layout = block.layout()); const int lineCount = layout->lineCount(); if (lineCount < 1) return {};