diff --git a/src/gui/kernel/qplatforminputcontext.cpp b/src/gui/kernel/qplatforminputcontext.cpp index e5a1368fe81..0326744482c 100644 --- a/src/gui/kernel/qplatforminputcontext.cpp +++ b/src/gui/kernel/qplatforminputcontext.cpp @@ -271,16 +271,20 @@ void QPlatformInputContextPrivate::setInputMethodAccepted(bool accepted) } /*! - * \brief QPlatformInputContext::setSelectionOnFocusObject - * \param anchorPos Beginning of selection in currently active window coordinates - * \param cursorPos End of selection in currently active window coordinates - */ -void QPlatformInputContext::setSelectionOnFocusObject(const QPointF &anchorPos, const QPointF &cursorPos) + \brief QPlatformInputContext::setSelectionOnFocusObject + \param anchorPos Beginning of selection in currently active window native coordinates + \param cursorPos End of selection in currently active window native coordinates +*/ +void QPlatformInputContext::setSelectionOnFocusObject(const QPointF &nativeAnchorPos, const QPointF &nativeCursorPos) { QObject *focus = qApp->focusObject(); if (!focus) return; + QWindow *window = qApp->focusWindow(); + const QPointF &anchorPos = QHighDpi::fromNativePixels(nativeAnchorPos, window); + const QPointF &cursorPos = QHighDpi::fromNativePixels(nativeCursorPos, window); + QInputMethod *im = QGuiApplication::inputMethod(); const QTransform mapToLocal = im->inputItemTransform().inverted(); bool success; diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp index 24cb261e6fa..211f0e4d959 100644 --- a/src/plugins/platforms/android/qandroidinputcontext.cpp +++ b/src/plugins/platforms/android/qandroidinputcontext.cpp @@ -824,12 +824,7 @@ void QAndroidInputContext::longPress(int x, int y) BatchEditLock batchEditLock(this); focusObjectStopComposing(); - - const double pixelDensity = - QGuiApplication::focusWindow() - ? QHighDpiScaling::factor(QGuiApplication::focusWindow()) - : QHighDpiScaling::factor(QtAndroid::androidPlatformIntegration()->screen()); - const QPointF touchPoint(x / pixelDensity, y / pixelDensity); + const QPointF touchPoint(x, y); setSelectionOnFocusObject(touchPoint, touchPoint); QInputMethodQueryEvent query(Qt::ImCursorPosition | Qt::ImAnchorPosition | Qt::ImTextBeforeCursor | Qt::ImTextAfterCursor);