diff options
-rw-r--r-- | src/gui/kernel/qplatforminputcontext.cpp | 14 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidinputcontext.cpp | 7 |
2 files changed, 10 insertions, 11 deletions
diff --git a/src/gui/kernel/qplatforminputcontext.cpp b/src/gui/kernel/qplatforminputcontext.cpp index e5a1368fe8..0326744482 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 24cb261e6f..211f0e4d95 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); |