From 5577a901dae23ce561db3450a320386d5f74d4ac Mon Sep 17 00:00:00 2001 From: mlangkabel Date: Fri, 26 Jan 2018 10:44:23 +0100 Subject: [PATCH] ui: fixed line numbers still visible if overlayed by horizontal scroll bar --- src/lib_gui/qt/element/QtCodeArea.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib_gui/qt/element/QtCodeArea.cpp b/src/lib_gui/qt/element/QtCodeArea.cpp index a4cbc68f..4c723228 100644 --- a/src/lib_gui/qt/element/QtCodeArea.cpp +++ b/src/lib_gui/qt/element/QtCodeArea.cpp @@ -228,12 +228,16 @@ void QtCodeArea::lineNumberAreaPaintEvent(QPaintEvent *event) QPen p = painter.pen(); - while (block.isValid() && top <= event->rect().bottom()) + const int scrollBarHeight = (horizontalScrollBar()->minimum() != horizontalScrollBar()->maximum() ? horizontalScrollBar()->height() : 0); + const int drawAreaTop = event->rect().top(); + const int drawAreaBottom = event->rect().bottom() - scrollBarHeight; + + while (block.isValid() && top <= drawAreaBottom) { - if (block.isVisible() && bottom >= event->rect().top()) + if (block.isVisible() && bottom >= drawAreaTop) { - int number = blockNumber + getStartLineNumber(); - int height = std::ceil(blockBoundingRect(block).height()); + const int number = blockNumber + getStartLineNumber(); + const int height = bottom - top - std::max(0, bottom - drawAreaBottom); p.setColor(textColor);