summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
index ea8e5cd44c..e62b5dab82 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -120,7 +120,7 @@ public class QtActivityDelegate
private boolean m_keyboardIsVisible = false;
public boolean m_backKeyPressedSent = false;
-
+ private long m_showHideTimeStamp = System.nanoTime();
public void setFullScreen(boolean enterFullScreen)
{
@@ -201,12 +201,18 @@ public class QtActivityDelegate
private final int ApplicationInactive = 0x2;
private final int ApplicationActive = 0x4;
- public void setKeyboardVisibility(boolean visibility)
+
+ public boolean setKeyboardVisibility(boolean visibility, long timeStamp)
{
+ if (m_showHideTimeStamp > timeStamp)
+ return false;
+ m_showHideTimeStamp = timeStamp;
+
if (m_keyboardIsVisible == visibility)
- return;
+ return false;
m_keyboardIsVisible = visibility;
QtNative.keyboardVisibilityChanged(m_keyboardIsVisible);
+ return true;
}
public void resetSoftwareKeyboard()
{
@@ -304,11 +310,11 @@ public class QtActivityDelegate
QtNativeInputConnection.updateCursorPosition();
//FALLTHROUGH
case InputMethodManager.RESULT_UNCHANGED_SHOWN:
- setKeyboardVisibility(true);
+ setKeyboardVisibility(true, System.nanoTime());
break;
case InputMethodManager.RESULT_HIDDEN:
case InputMethodManager.RESULT_UNCHANGED_HIDDEN:
- setKeyboardVisibility(false);
+ setKeyboardVisibility(false, System.nanoTime());
break;
}
}
@@ -331,11 +337,11 @@ public class QtActivityDelegate
switch (resultCode) {
case InputMethodManager.RESULT_SHOWN:
case InputMethodManager.RESULT_UNCHANGED_SHOWN:
- setKeyboardVisibility(true);
+ setKeyboardVisibility(true, System.nanoTime());
break;
case InputMethodManager.RESULT_HIDDEN:
case InputMethodManager.RESULT_UNCHANGED_HIDDEN:
- setKeyboardVisibility(false);
+ setKeyboardVisibility(false, System.nanoTime());
break;
}
}
@@ -827,7 +833,7 @@ public class QtActivityDelegate
if (keyCode == KeyEvent.KEYCODE_BACK && !m_backKeyPressedSent) {
hideSoftwareKeyboard();
- setKeyboardVisibility(false);
+ setKeyboardVisibility(false, System.nanoTime());
return true;
}