diff options
author | Pekka Gehör <pekka.gehor@qt.io> | 2021-04-04 09:59:41 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-05-03 08:12:03 +0000 |
commit | aca924f32c3dcd41f8a9527faa92666c6fbf9676 (patch) | |
tree | a0d140c6c7aadc9b67cb98a5aa3d190eb6f53dcd /src/android/jar/src | |
parent | fba271339ba8565fed3f2e8a49d128266970d72b (diff) |
Android: Fix Application becomes unresponsive issue
Block key events until the plugin is running.
Fixes: QTBUG-67944
Change-Id: Iea47f2e94d850141834a7e8fc26218be2cacf660
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 2262a9cd2d135d5ea2ade42460496c88d8b2c292)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/android/jar/src')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java | 10 | ||||
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtNative.java | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java index 4cae9465ba..c36ea359f9 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java @@ -158,6 +158,7 @@ public class QtActivityDelegate private CursorHandle m_leftSelectionHandle; private CursorHandle m_rightSelectionHandle; private EditPopupMenu m_editPopupMenu; + private boolean m_isPluginRunning = false; private QtAccessibilityDelegate m_accessibilityDelegate = null; @@ -893,6 +894,11 @@ public class QtActivityDelegate m_accessibilityDelegate.notifyObjectFocus(viewId); } + public void notifyQtAndroidPluginRunning(boolean running) + { + m_isPluginRunning = running; + } + public void initializeAccessibility() { m_accessibilityDelegate = new QtAccessibilityDelegate(m_activity, m_layout, this); @@ -1000,7 +1006,7 @@ public class QtActivityDelegate public boolean onKeyDown(int keyCode, KeyEvent event) { - if (!m_started) + if (!m_started || !m_isPluginRunning) return false; m_metaState = MetaKeyKeyListener.handleKeyDown(m_metaState, keyCode, event); @@ -1034,7 +1040,7 @@ public class QtActivityDelegate public boolean onKeyUp(int keyCode, KeyEvent event) { - if (!m_started) + if (!m_started || !m_isPluginRunning) return false; if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java index 001e6a7970..81799a751e 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -970,6 +970,11 @@ public class QtNative }); } + public static void notifyQtAndroidPluginRunning(final boolean running) + { + m_activityDelegate.notifyQtAndroidPluginRunning(running); + } + private static void registerClipboardManager() { if (m_service == null || m_activity != null) { // Avoid freezing if only service |