From 43362244a1860bf20b87d3317c146fd8bb203be3 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Fri, 12 Jan 2024 17:43:21 +0100 Subject: [PATCH] QLineEdit: disable cursor blinking on hide QLineEdit activates the blinking cursor timer when it's shown, but never deactivates it, resulting in constant wakeups even for hidden line edits. Note that this is a workaround. Qt is supposed to send a focus out event to line edits that get hidden. In some corner cases, it doesn't, and only a hide event is sent. Change-Id: Ic0645512051466ca9b1e84c54cef34c22287338b Task-number: QTBUG-52021 Pick-to: 6.6 6.5 Reviewed-by: Richard Moe Gustavsen (cherry picked from commit e35dcba5bb8cdcf578a514ad6e03ae64002c2c3a) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/widgets/qlineedit.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp index c4724889ece..201ecd2b69d 100644 --- a/src/widgets/widgets/qlineedit.cpp +++ b/src/widgets/widgets/qlineedit.cpp @@ -1462,6 +1462,8 @@ bool QLineEdit::event(QEvent * e) || style()->styleHint(QStyle::SH_BlinkCursorWhenTextSelected, &opt, this)) d->setCursorVisible(true); } + } else if (e->type() == QEvent::Hide) { + d->control->setBlinkingCursorEnabled(false); #if QT_CONFIG(action) } else if (e->type() == QEvent::ActionRemoved) { d->removeAction(static_cast(e)->action());