diff options
Diffstat (limited to 'src/widgets/widgets/qwidgetlinecontrol.cpp')
-rw-r--r-- | src/widgets/widgets/qwidgetlinecontrol.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index 9dd61c2c6a..66db5ccac7 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -1662,6 +1662,7 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) break; #endif if (!m_completer->currentCompletion().isEmpty() && hasSelectedText() + && !m_completer->completionPrefix().isEmpty() && textAfterSelection().isEmpty()) { setText(m_completer->currentCompletion()); inlineCompletionAccepted = true; @@ -1948,10 +1949,15 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) return; } - if (unknown) + if (unknown) { event->ignore(); - else + } else { +#ifndef QT_NO_CLIPBOARD + if (QApplication::clipboard()->supportsSelection()) + copy(QClipboard::Selection); +#endif event->accept(); + } } bool QWidgetLineControl::isUndoAvailable() const |