diff options
Diffstat (limited to 'src/android/jar/src/org')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java | 15 | ||||
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 17 |
2 files changed, 27 insertions, 5 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 6aa935c2b1..a15a06a302 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -263,7 +263,7 @@ public class QtActivityDelegate }, 5); } - public void showSoftwareKeyboard(final int x, final int y, final int width, final int height, final int inputHints, final int enterKeyType) + public void showSoftwareKeyboard(final int x, final int y, final int width, final int height, final int editorHeight, final int inputHints, final int enterKeyType) { if (m_imm == null) return; @@ -285,7 +285,7 @@ public class QtActivityDelegate if (softInputIsHidden) return; } else { - if (height > visibleHeight) + if (editorHeight > visibleHeight) m_activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); else m_activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); @@ -402,12 +402,12 @@ public class QtActivityDelegate if (metrics.widthPixels > metrics.heightPixels) { // landscape if (m_landscapeKeyboardHeight != r.bottom) { m_landscapeKeyboardHeight = r.bottom; - showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); + showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); } } else { if (m_portraitKeyboardHeight != r.bottom) { m_portraitKeyboardHeight = r.bottom; - showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); + showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); } } } else { @@ -558,6 +558,13 @@ public class QtActivityDelegate } } + public void updateInputItemRectangle(final int x, final int y, final int w, final int h) + { + if (m_layout == null || m_editText == null || !m_keyboardIsVisible) + return; + m_layout.setLayoutParams(m_editText, new QtLayout.LayoutParams(w, h, x, y), true); + } + public boolean loadApplication(Activity activity, ClassLoader classLoader, Bundle loaderParams) { /// check parameters integrity diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 39f1220722..dbd356f7a5 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -878,10 +878,25 @@ public class QtNative }); } + private static void updateInputItemRectangle(final int x, + final int y, + final int w, + final int h) + { + runAction(new Runnable() { + @Override + public void run() { + m_activityDelegate.updateInputItemRectangle(x, y, w, h); + } + }); + } + + private static void showSoftwareKeyboard(final int x, final int y, final int width, final int height, + final int editorHeight, final int inputHints, final int enterKeyType) { @@ -889,7 +904,7 @@ public class QtNative @Override public void run() { if (m_activityDelegate != null) - m_activityDelegate.showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); + m_activityDelegate.showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); } }); } |