From 583b8dbefde89c6437fda502d4aad0a2f9839e3c Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 24 Apr 2015 10:40:23 +0200 Subject: [PATCH] Editor: Fix hihglighting current line in read only editors. Task-number: QTCREATORBUG-10104 Change-Id: I3c4adb62c1cae61e9eb409a58359a687852023a1 Reviewed-by: Daniel Teske Reviewed-by: Eike Ziller --- src/plugins/texteditor/texteditor.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index b1d86e18f2a..968e8e5131b 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -3473,8 +3473,8 @@ void TextEditorWidget::paintEvent(QPaintEvent *e) // draw backgrond to the right of the wrap column before everything else qreal lineX = 0; QPointF offset(contentOffset()); - QRect viewportRect = viewport()->rect(); - QRect er = e->rect(); + const QRect &viewportRect = viewport()->rect(); + const QRect &er = e->rect(); const FontSettings &fs = textDocument()->fontSettings(); const QTextCharFormat &searchScopeFormat = fs.toTextCharFormat(C_SEARCH_SCOPE); @@ -3828,6 +3828,12 @@ void TextEditorWidget::paintEvent(QPaintEvent *e) QColor color = fs.toTextCharFormat(C_CURRENT_LINE).background().color(); // set alpha, otherwise we cannot see block highlighting and find scope underneath color.setAlpha(128); + if (!editable && !er.contains(rr.toRect())) { + QRect updateRect = er; + updateRect.setLeft(0); + updateRect.setRight(viewportRect.width() - offset.x()); + viewport()->update(updateRect); + } painter.fillRect(rr, color); }