diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2023-04-12 13:41:57 +0300 |
---|---|---|
committer | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2023-04-18 09:01:02 +0300 |
commit | d6ddfa3d4ca3fbbaddc2acd7ebe3f8296fc68b68 (patch) | |
tree | 6c0fff56640850e2bea87c4b3771bdd7faa6fe6e /src/quick/items/qquicktextinput.cpp | |
parent | 9c2ecfc6c06f1defa512e8a8b49d12dd37a313dd (diff) |
Fix word selection on touch
The cursor position update on mouseReleaseEvent broke
touch-and-hold word selection on touch devices. Now only do it
if we don't have an active selection.
Pick-to: 6.4 6.5
Fixes: QTBUG-111504
Fixes: QTBUG-110850
Change-Id: I5c63d8516d1eef3de10289c6d5c5b3d1d3e8623f
Reviewed-by: Sami Varanka <sami.varanka@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/quick/items/qquicktextinput.cpp')
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 947c2c20f4..4a4055af7b 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -1630,9 +1630,11 @@ void QQuickTextInput::mouseReleaseEvent(QMouseEvent *event) } } #endif + // On a touchscreen or with a stylus, set cursor position and focus on release, not on press; // if Flickable steals the grab in the meantime, the cursor won't move. - if (!isMouse) + // Check d->hasSelectedText() to keep touch-and-hold word selection working. + if (!isMouse && !d->hasSelectedText()) d->moveCursor(d->positionAt(event->position()), false); if (d->focusOnPress && qGuiApp->styleHints()->setFocusOnTouchRelease()) |