diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-06-19 12:44:37 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-06-20 02:03:21 +0200 |
commit | 89566bf7491cd717a6f64a0a8b82306309bb0701 (patch) | |
tree | 4ae7b5915a44f05c9b400465edbc7bbcab936b89 /src/widgets/widgets/qkeysequenceedit.cpp | |
parent | b992aabd89a150fbb32feb7508cfcaad95fe486a (diff) |
QKeySequenceEdit: don't finish when opening a context menu
Right-clicking in a QKeySequenceEdit opens the usual context menu for a
line edit, which generates a focusOut event. QKeySequenceEdit finishes
the recording when it loses focus, which includes deselecting the text.
We should not finish or deselect if the focusOut event has focusReason
FocusReasonPopup, as otherwise users cannot copy the text (keyboard
shortcuts don't work for that, obviously).
Pick-to: 6.6
Task-number: QTBUG-114624
Change-Id: I0b3c535c189151daa29cf17640493f3353e6394b
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/widgets/widgets/qkeysequenceedit.cpp')
-rw-r--r-- | src/widgets/widgets/qkeysequenceedit.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/widgets/widgets/qkeysequenceedit.cpp b/src/widgets/widgets/qkeysequenceedit.cpp index 9a9bf25668..d2474e5675 100644 --- a/src/widgets/widgets/qkeysequenceedit.cpp +++ b/src/widgets/widgets/qkeysequenceedit.cpp @@ -414,7 +414,8 @@ void QKeySequenceEdit::timerEvent(QTimerEvent *e) void QKeySequenceEdit::focusOutEvent(QFocusEvent *e) { Q_D(QKeySequenceEdit); - d->finishEditing(); + if (e->reason() != Qt::PopupFocusReason) + d->finishEditing(); QWidget::focusOutEvent(e); } |