summaryrefslogtreecommitdiffstats
path: root/src/android/jar
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/jar')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java15
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtNative.java17
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);
}
});
}