diff options
author | BogDan Vatra <bogdan@kdab.com> | 2017-12-15 15:31:00 +0200 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2018-03-14 18:24:24 +0000 |
commit | f6fd8dceeab120cd9c0cfd68d06c916963ba796a (patch) | |
tree | 4443d069ab10e6f245ff8f046828af5992a0bf0a /src/plugins/platforms/android | |
parent | 288a2ada5bbbbb6ea1b5dcacd2d1678896957dba (diff) |
Remove text selection handles when keyboard is hidden
Task-number: QTBUG-58700
Change-Id: I094f31250ec879b0f08f27499794946cac2084e6
Reviewed-by: Corey Pendleton <corey.pendleton@garmin.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r-- | src/plugins/platforms/android/androidjniinput.cpp | 4 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidinputcontext.cpp | 9 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidinputcontext.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/platforms/android/androidjniinput.cpp b/src/plugins/platforms/android/androidjniinput.cpp index dabab553c2..c4142a9b6e 100644 --- a/src/plugins/platforms/android/androidjniinput.cpp +++ b/src/plugins/platforms/android/androidjniinput.cpp @@ -805,8 +805,10 @@ namespace QtAndroidInput QAndroidInputContext *inputContext = QAndroidInputContext::androidInputContext(); if (inputContext && qGuiApp) { inputContext->emitInputPanelVisibleChanged(); - if (!visibility) + if (!visibility) { inputContext->emitKeyboardRectChanged(); + QMetaObject::invokeMethod(inputContext, "hideSelectionHandles", Qt::QueuedConnection); + } } #ifdef QT_DEBUG_ANDROID_IM_PROTOCOL qDebug() << "@@@ KEYBOARDVISIBILITYCHANGED" << inputContext; diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp index fe35c13e26..d6da1998cf 100644 --- a/src/plugins/platforms/android/qandroidinputcontext.cpp +++ b/src/plugins/platforms/android/qandroidinputcontext.cpp @@ -593,6 +593,7 @@ void QAndroidInputContext::updateSelectionHandles() return; } + m_handleMode |= ShowSelection; auto leftRect = im->cursorRectangle(); auto rightRect = im->anchorRectangle(); if (cpos > anchor) @@ -741,6 +742,14 @@ void QAndroidInputContext::keyDown() } } +void QAndroidInputContext::hideSelectionHandles() +{ + if (m_handleMode & ShowSelection) { + m_handleMode = Hidden; + updateSelectionHandles(); + } +} + void QAndroidInputContext::update(Qt::InputMethodQueries queries) { QSharedPointer<QInputMethodQueryEvent> query = focusObjectInputMethodQueryThreadSafe(queries); diff --git a/src/plugins/platforms/android/qandroidinputcontext.h b/src/plugins/platforms/android/qandroidinputcontext.h index 65822b0d60..a6e22fa4f7 100644 --- a/src/plugins/platforms/android/qandroidinputcontext.h +++ b/src/plugins/platforms/android/qandroidinputcontext.h @@ -132,6 +132,7 @@ public slots: void touchDown(int x, int y); void longPress(int x, int y); void keyDown(); + void hideSelectionHandles(); private slots: void showInputPanelLater(Qt::ApplicationState); |