forked from qt-creator/qt-creator
Fixed visible wrap column on systems with non-fractional fonts sizes
QFontMetricsF::averageCharWidth seems to always return a fractional size (at least on Linux/GNOME with DejaVu Mono), even when the font is not actually drawn at sub-pixels. This caused the visible wrap column to appear in the wrong place. As a workaround, use the width of the character 'x', which is pretty average and does align to pixels when needed. Task-number: QTCREATORBUG-2746 Reviewed-by: con
This commit is contained in:
@@ -2814,7 +2814,9 @@ void BaseTextEditor::paintEvent(QPaintEvent *e)
|
||||
qreal lineX = 0;
|
||||
|
||||
if (d->m_visibleWrapColumn > 0) {
|
||||
lineX = QFontMetricsF(font()).averageCharWidth() * d->m_visibleWrapColumn + offset.x() + 4;
|
||||
// Don't use QFontMetricsF::averageCharWidth here, due to it returning
|
||||
// a fractional size even when this is not supported by the platform.
|
||||
lineX = QFontMetricsF(font()).width(QLatin1Char('x')) * d->m_visibleWrapColumn + offset.x() + 4;
|
||||
|
||||
if (lineX < viewportRect.width()) {
|
||||
const QBrush background = d->m_ifdefedOutFormat.background();
|
||||
|
||||
Reference in New Issue
Block a user