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