diff options
author | BogDan Vatra <bogdan@kde.org> | 2014-03-22 08:08:08 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-26 07:22:35 +0100 |
commit | f1f07eae2d40f202a709af33ca1e8d86551c9ace (patch) | |
tree | 6ace627ce63597e3c1da381b4b6ff2ba0eb579f1 /src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java | |
parent | a0dc3e608fe67ae1ec3f0ee92e1dc15ebaa0fe9e (diff) |
Android: Fix software keyboard show/hide state
Task-number: QTBUG-34831
Change-Id: Ic38334d011ceef2dc75e4fb3fcea48f62aeea757
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java | 39 |
1 files changed, 6 insertions, 33 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java b/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java index 5e6e227c2b..655ab95dd8 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java @@ -82,18 +82,11 @@ class QtNativeInputConnection } class HideKeyboardRunnable implements Runnable { - private QtInputConnection m_connection; - HideKeyboardRunnable(QtInputConnection connection) - { - m_connection = connection; - } + private long m_hideTimeStamp = System.nanoTime(); @Override public void run() { - if (m_connection.getInputState() == QtInputConnection.InputStates.Hiding) { - QtNative.activityDelegate().setKeyboardVisibility(false); - m_connection.reset(); - } + QtNative.activityDelegate().setKeyboardVisibility(false, m_hideTimeStamp); } } @@ -107,34 +100,14 @@ public class QtInputConnection extends BaseInputConnection private static final int ID_SWITCH_INPUT_METHOD = android.R.id.switchInputMethod; private static final int ID_ADD_TO_DICTIONARY = android.R.id.addToDictionary; - - enum InputStates { Visible, FinishComposing, Hiding }; - private QtEditText m_view = null; - private InputStates m_inputState = InputStates.Visible; - - public void reset() - { - m_inputState = InputStates.Visible; - } - - public InputStates getInputState() - { - return m_inputState; - } private void setClosing(boolean closing) { - if (closing && m_inputState == InputStates.Hiding) - return; - - if (closing && m_view.getActivityDelegate().isSoftwareKeyboardVisible()) { - m_view.postDelayed(new HideKeyboardRunnable(this), 100); - m_inputState = InputStates.Hiding; + if (closing) { + m_view.postDelayed(new HideKeyboardRunnable(), 100); } else { - if (m_inputState == InputStates.Hiding) - QtNative.activityDelegate().setKeyboardVisibility(true); - m_inputState = closing ? InputStates.FinishComposing : InputStates.Visible; + QtNative.activityDelegate().setKeyboardVisibility(true, System.nanoTime()); } } @@ -154,7 +127,7 @@ public class QtInputConnection extends BaseInputConnection @Override public boolean endBatchEdit() { -// setClosing(false); + setClosing(false); return true; } |