diff options
author | Paul Olav Tvete <paul.tvete@digia.com> | 2014-05-14 14:38:07 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-14 20:10:03 +0200 |
commit | a968042f54aaa0155374f8a4140aaa1122f82949 (patch) | |
tree | 0b4dd101a89ed4405db518fc85931026c4211db9 | |
parent | 08117eee009f06d77bba489bd9513b5671e3d604 (diff) |
Restore fullscreen mode after keyboard is dismissed
Showing the onscreen keyboard will also show the navigation
soft buttons. We need to tell Android to re-enable immersive
mode after the keyboard is hidden.
Since we now do this in two places, refactor the logic.
Task-number: QTBUG-36916
Change-Id: Ic69c28f41f5e8cf324d81f9bada3cb148dfb5306
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java | 18 |
1 files changed, 12 insertions, 6 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 b396dfdfa1..554c54d4a0 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -170,6 +170,13 @@ public class QtActivityDelegate m_layout.requestLayout(); } + public void updateFullScreen() + { + if (m_fullScreen) { + m_fullScreen = false; + setFullScreen(true); + } + } // input method hints - must be kept in sync with QTDIR/src/corelib/global/qnamespace.h private final int ImhHiddenText = 0x1; @@ -213,6 +220,10 @@ public class QtActivityDelegate return false; m_keyboardIsVisible = visibility; QtNative.keyboardVisibilityChanged(m_keyboardIsVisible); + + if (visibility == false) + updateFullScreen(); // Hiding the keyboard clears the immersive mode, so we need to set it again. + return true; } public void resetSoftwareKeyboard() @@ -721,12 +732,7 @@ public class QtActivityDelegate QtNative.updateApplicationState(ApplicationActive); QtNative.clearLostActions(); QtNative.updateWindow(); - - if (m_fullScreen) { - // Suspending the app clears the immersive mode, so we need to set it again. - m_fullScreen = false; // Force the setFullScreen() call below to actually do something - setFullScreen(true); - } + updateFullScreen(); // Suspending the app clears the immersive mode, so we need to set it again. } } } |