summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Moskal <[email protected]>2023-10-18 10:59:51 +0200
committerBartlomiej Moskal <[email protected]>2023-10-24 17:52:06 +0000
commit9c8651478b482cb162a6fd92bb79f0d7f6a2573c (patch)
tree23bf106c8038bdda16079a187697a449220e8d5c
parente5c7bb62eef98df40b3d2534b47a1d1ab26e7c38 (diff)
Android: Fix for hiding cursor handles
After c80f262258b7846bf199887bcfdbb6dcfda6ad6f commit (which fixed selection for read-only texts), checking if m_handleMode is Hidden was removed. Because of that hidding cursor handle stopped work correctly. This commit brings back check if m_handleMode is Hidden. Also when only one handle is visible, it should be hidden within the next 5 seconds regardless for keyboard visibility. That is how it is handled in pure Android apps. Pick-to: 6.6 6.5 Fixes: QTBUG-117367 Change-Id: I0400f9604234bfad7fe17d74673ae9a93088bab4 Reviewed-by: Assam Boudjelthia <[email protected]> Reviewed-by: Rami Potinkara <[email protected]>
-rw-r--r--src/plugins/platforms/android/qandroidinputcontext.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp
index d2eb05c24d5..5b94e553ddf 100644
--- a/src/plugins/platforms/android/qandroidinputcontext.cpp
+++ b/src/plugins/platforms/android/qandroidinputcontext.cpp
@@ -563,6 +563,11 @@ void QAndroidInputContext::updateSelectionHandles()
bool readOnly = readOnlyVariant.toBool();
QPlatformWindow *qPlatformWindow = qGuiApp->focusWindow()->handle();
+ if (!readOnly && ((m_handleMode & 0xff) == Hidden)) {
+ QtAndroidInput::updateHandles(Hidden);
+ return;
+ }
+
if ( cpos == anchor && (!readOnlyVariant.isValid() || readOnly)) {
QtAndroidInput::updateHandles(Hidden);
return;
@@ -589,9 +594,8 @@ void QAndroidInputContext::updateSelectionHandles()
if (!query.value(Qt::ImSurroundingText).toString().isEmpty())
buttons |= EditContext::SelectAllButton;
QtAndroidInput::updateHandles(m_handleMode, editMenuPoint, buttons, cursorPointGlobal);
- // The VK is hidden, reset the timer
- if (m_hideCursorHandleTimer.isActive())
- m_hideCursorHandleTimer.start();
+ m_hideCursorHandleTimer.start();
+
return;
}