Editor: reapply font settings after palette changes

Change-Id: I99368b03e093794656cf7a69aa9ef75032c430eb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
David Schulz
2020-02-11 06:56:24 +01:00
parent 87b2107290
commit 67aef33dd0

View File

@@ -265,6 +265,10 @@ protected:
void contextMenuEvent(QContextMenuEvent *event) override {
textEdit->extraAreaContextMenuEvent(event);
}
void changeEvent(QEvent *event) override {
if (event->type() == QEvent::PaletteChange)
QCoreApplication::sendEvent(textEdit, event);
}
void wheelEvent(QWheelEvent *event) override {
QCoreApplication::sendEvent(textEdit->viewport(), event);
}
@@ -6720,6 +6724,8 @@ void TextEditorWidget::changeEvent(QEvent *e)
d->slotUpdateExtraAreaWidth();
d->m_extraArea->update();
}
} else if (e->type() == QEvent::PaletteChange) {
applyFontSettings();
}
}
@@ -7265,18 +7271,23 @@ void TextEditorWidget::applyFontSettings()
p.setBrush(QPalette::Inactive, QPalette::Highlight, p.highlight());
p.setBrush(QPalette::Inactive, QPalette::HighlightedText, p.highlightedText());
setPalette(p);
setFont(font);
d->updateTabStops(); // update tab stops, they depend on the font
if (p != palette())
setPalette(p);
if (font != this->font()) {
setFont(font);
d->updateTabStops(); // update tab stops, they depend on the font
}
// Line numbers
QPalette ep;
ep.setColor(QPalette::Dark, lineNumberFormat.foreground().color());
ep.setColor(QPalette::Window, lineNumberFormat.background().style() != Qt::NoBrush ?
lineNumberFormat.background().color() : background);
d->m_extraArea->setPalette(ep);
if (ep != d->m_extraArea->palette()) {
d->m_extraArea->setPalette(ep);
d->slotUpdateExtraAreaWidth(); // Adjust to new font width
}
d->slotUpdateExtraAreaWidth(); // Adjust to new font width
d->updateHighlights();
}