summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qplatforminputcontext.cpp14
-rw-r--r--src/plugins/platforms/android/qandroidinputcontext.cpp7
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);