aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextinput.cpp
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2023-04-12 13:41:57 +0300
committerTomi Korpipaa <tomi.korpipaa@qt.io>2023-04-18 09:01:02 +0300
commitd6ddfa3d4ca3fbbaddc2acd7ebe3f8296fc68b68 (patch)
tree6c0fff56640850e2bea87c4b3771bdd7faa6fe6e /src/quick/items/qquicktextinput.cpp
parent9c2ecfc6c06f1defa512e8a8b49d12dd37a313dd (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.cpp4
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())