From f0b75092c59ed9c0248b1f6b4b9ffba71a7f86b0 Mon Sep 17 00:00:00 2001 From: mae <qt-info@nokia.com> Date: Thu, 26 Nov 2009 15:26:30 +0100 Subject: [PATCH] fix windows clipping issue for search results --- src/plugins/texteditor/basetexteditor.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index f95eb1bf545..1bdaf66ac1d 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -1824,8 +1824,6 @@ QTextBlock BaseTextEditor::collapsedBlockAt(const QPoint &pos, QRect *box) const void BaseTextEditorPrivate::highlightSearchResults(const QTextBlock &block) { - m_searchResultOverlay->clear(); - if (m_searchExpr.isEmpty()) return; @@ -2073,6 +2071,7 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) int cursor_cpos = 0; QPen cursor_pen; + d->m_searchResultOverlay->clear(); while (block.isValid()) { QRectF r = blockBoundingRect(block).translated(offset); @@ -2191,7 +2190,6 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) layout->draw(&painter, offset, selections, er); - d->m_searchResultOverlay->paint(&painter, er); if ((drawCursor && !drawCursorAsBlock) || (editable && context.cursorPosition < -1 @@ -2397,9 +2395,7 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) QRectF r = blockBoundingRect(b).translated(visibleCollapsedBlockOffset); QTextLayout *layout = b.layout(); QVector<QTextLayout::FormatRange> selections; - d->highlightSearchResults(b); layout->draw(&painter, visibleCollapsedBlockOffset, selections, er); - d->m_searchResultOverlay->paint(&painter, er); b.setVisible(false); // restore previous state visibleCollapsedBlockOffset.ry() += r.height(); @@ -2422,6 +2418,9 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) painter.drawLine(QPointF(lineX, 0), QPointF(lineX, viewport()->height())); } + if (d->m_searchResultOverlay) + d->m_searchResultOverlay->paint(&painter, e->rect()); + if (d->m_overlay && d->m_overlay->isVisible()) d->m_overlay->paint(&painter, e->rect()); -- GitLab