From 4afcdc488f4e77f599406efe990e8534d38daf31 Mon Sep 17 00:00:00 2001 From: Mike Chen Date: Thu, 8 Jun 2023 14:19:52 +0800 Subject: [PATCH] Fix QTextEdit/QPlanTextEdit palette not updated on ActivationChange When a QTextEdit/QPlanTextEdit window loses focus and receives PaletteChange event, the ColorGroup that controls the palette for the QWidgetTextControl will be set to 'Inactive'. However, the QTextEdit does not update the palette when the window is activated again. This can become more noticeable in applications where different colors are used for the 'Inactive' and 'Active' ColorGroups. Pick-to: 6.5 6.6 Change-Id: Idd4dcc55b2bf8e671e7dd9cbd040782e1c3bf1a3 Reviewed-by: Volker Hilsheimer --- src/widgets/widgets/qplaintextedit.cpp | 1 + src/widgets/widgets/qtextedit.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index 9ca2a84d07e..dadf154567a 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -2301,6 +2301,7 @@ void QPlainTextEdit::changeEvent(QEvent *e) d->control->document()->setDefaultFont(font()); break; case QEvent::ActivationChange: + d->control->setPalette(palette()); if (!isActiveWindow()) d->autoScrollTimer.stop(); break; diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index b4b16120ea5..97d666dc1fd 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -1897,6 +1897,7 @@ void QTextEdit::changeEvent(QEvent *e) || e->type() == QEvent::FontChange) { d->control->document()->setDefaultFont(font()); } else if (e->type() == QEvent::ActivationChange) { + d->control->setPalette(palette()); if (!isActiveWindow()) d->autoScrollTimer.stop(); } else if (e->type() == QEvent::EnabledChange) {