Fix QTextEdit/QPlanTextEdit palette not updated

QPlainTextEdit/QTextEdit, etc. never received ActivationChange
when used as child widget. Set palette to control on
WindowActivate/WindowDeactivate

Pick-to: 6.6 6.5
Change-Id: Iae75d9dcfba0c6171c556626551b37d4549006c7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 402cb510e1d40825d74447af831918f4a2a951f2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Mike Chen 2024-02-22 10:34:22 +08:00 committed by Qt Cherry-pick Bot
parent 79ac8b110a
commit dd52aed320
2 changed files with 9 additions and 9 deletions

View File

@ -1557,6 +1557,10 @@ bool QPlainTextEdit::event(QEvent *e)
} }
return true; return true;
#endif // QT_NO_GESTURES #endif // QT_NO_GESTURES
case QEvent::WindowActivate:
case QEvent::WindowDeactivate:
d->control->setPalette(palette());
break;
default: default:
break; break;
} }
@ -2298,7 +2302,6 @@ void QPlainTextEdit::changeEvent(QEvent *e)
d->control->document()->setDefaultFont(font()); d->control->document()->setDefaultFont(font());
break; break;
case QEvent::ActivationChange: case QEvent::ActivationChange:
d->control->setPalette(palette());
if (!isActiveWindow()) if (!isActiveWindow())
d->autoScrollTimer.stop(); d->autoScrollTimer.stop();
break; break;

View File

@ -1083,7 +1083,6 @@ bool QTextEdit::event(QEvent *e)
#ifndef QT_NO_CONTEXTMENU #ifndef QT_NO_CONTEXTMENU
if (e->type() == QEvent::ContextMenu if (e->type() == QEvent::ContextMenu
&& static_cast<QContextMenuEvent *>(e)->reason() == QContextMenuEvent::Keyboard) { && static_cast<QContextMenuEvent *>(e)->reason() == QContextMenuEvent::Keyboard) {
Q_D(QTextEdit);
ensureCursorVisible(); ensureCursorVisible();
const QPoint cursorPos = cursorRect().center(); const QPoint cursorPos = cursorRect().center();
QContextMenuEvent ce(QContextMenuEvent::Keyboard, cursorPos, d->viewport->mapToGlobal(cursorPos)); QContextMenuEvent ce(QContextMenuEvent::Keyboard, cursorPos, d->viewport->mapToGlobal(cursorPos));
@ -1091,19 +1090,18 @@ bool QTextEdit::event(QEvent *e)
const bool result = QAbstractScrollArea::event(&ce); const bool result = QAbstractScrollArea::event(&ce);
e->setAccepted(ce.isAccepted()); e->setAccepted(ce.isAccepted());
return result; return result;
} else if (e->type() == QEvent::ShortcutOverride } else if (e->type() == QEvent::ShortcutOverride || e->type() == QEvent::ToolTip) {
|| e->type() == QEvent::ToolTip) {
d->sendControlEvent(e); d->sendControlEvent(e);
} } else
#else
Q_UNUSED(d);
#endif // QT_NO_CONTEXTMENU #endif // QT_NO_CONTEXTMENU
#ifdef QT_KEYPAD_NAVIGATION #ifdef QT_KEYPAD_NAVIGATION
if (e->type() == QEvent::EnterEditFocus || e->type() == QEvent::LeaveEditFocus) { if (e->type() == QEvent::EnterEditFocus || e->type() == QEvent::LeaveEditFocus) {
if (QApplicationPrivate::keypadNavigationEnabled()) if (QApplicationPrivate::keypadNavigationEnabled())
d->sendControlEvent(e); d->sendControlEvent(e);
} } else
#endif #endif
if (e->type() == QEvent::WindowActivate || e->type() == QEvent::WindowDeactivate)
d->control->setPalette(palette());
return QAbstractScrollArea::event(e); return QAbstractScrollArea::event(e);
} }
@ -1906,7 +1904,6 @@ void QTextEdit::changeEvent(QEvent *e)
|| e->type() == QEvent::FontChange) { || e->type() == QEvent::FontChange) {
d->control->document()->setDefaultFont(font()); d->control->document()->setDefaultFont(font());
} else if (e->type() == QEvent::ActivationChange) { } else if (e->type() == QEvent::ActivationChange) {
d->control->setPalette(palette());
if (!isActiveWindow()) if (!isActiveWindow())
d->autoScrollTimer.stop(); d->autoScrollTimer.stop();
} else if (e->type() == QEvent::EnabledChange) { } else if (e->type() == QEvent::EnabledChange) {