diff --git a/src/render/katerenderer.h b/src/render/katerenderer.h --- a/src/render/katerenderer.h +++ b/src/render/katerenderer.h @@ -422,6 +422,7 @@ int m_tabWidth; int m_indentWidth; int m_fontHeight; + float m_fontAscent; // some internal flags KateRenderer::caretStyles m_caretStyle; diff --git a/src/render/katerenderer.cpp b/src/render/katerenderer.cpp --- a/src/render/katerenderer.cpp +++ b/src/render/katerenderer.cpp @@ -980,6 +980,7 @@ * qreal fontHeight = font.ascent() + font.descent(); */ m_fontHeight = qMax(1, qCeil(m_fontMetrics.ascent() + m_fontMetrics.descent())); + m_fontAscent = m_fontMetrics.ascent(); } void KateRenderer::updateMarkerSize() @@ -1084,12 +1085,14 @@ if (maxwidth > 0) { line.setLineWidth(maxwidth); + } else { + line.setLineWidth(INT_MAX); } // we include the leading, this must match the ::updateFontHeight code! line.setLeadingIncluded(true); - line.setPosition(QPoint(line.lineNumber() ? shiftX : firstLineOffset, height)); + line.setPosition(QPoint(line.lineNumber() ? shiftX : firstLineOffset, height - line.ascent() + m_fontAscent)); if (needShiftX && line.width() > 0) { needShiftX = false;