mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 06:17:28 +02:00
7925 Create Mode: keyboard focused entry field is not visible
note: changed the way of calculation scroll value after showing virtual keyboard. Now it doesn't require KEYBOARD_HEGHT and will always try to position focused element at vertical center of the client area
This commit is contained in:
parent
88097bb39f
commit
00c3dcee2f
1 changed files with 9 additions and 8 deletions
|
@ -14,7 +14,6 @@
|
||||||
var isWindowFocused = true;
|
var isWindowFocused = true;
|
||||||
var isKeyboardRaised = false;
|
var isKeyboardRaised = false;
|
||||||
var isNumericKeyboard = false;
|
var isNumericKeyboard = false;
|
||||||
var KEYBOARD_HEIGHT = 200;
|
|
||||||
|
|
||||||
function shouldRaiseKeyboard() {
|
function shouldRaiseKeyboard() {
|
||||||
var nodeName = document.activeElement.nodeName;
|
var nodeName = document.activeElement.nodeName;
|
||||||
|
@ -56,13 +55,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isKeyboardRaised) {
|
if (!isKeyboardRaised) {
|
||||||
var delta = document.activeElement.getBoundingClientRect().bottom + 10
|
var timeout = setTimeout(function () {
|
||||||
- (document.body.clientHeight - KEYBOARD_HEIGHT);
|
clearTimeout(timeout);
|
||||||
if (delta > 0) {
|
|
||||||
setTimeout(function () {
|
var elementRect = document.activeElement.getBoundingClientRect();
|
||||||
document.body.scrollTop += delta;
|
var absoluteElementTop = elementRect.top + window.scrollY;
|
||||||
}, 500); // Allow time for keyboard to be raised in QML.
|
var middle = absoluteElementTop - (window.innerHeight / 2);
|
||||||
}
|
|
||||||
|
window.scrollTo(0, middle);
|
||||||
|
}, 500); // Allow time for keyboard to be raised in QML.
|
||||||
}
|
}
|
||||||
|
|
||||||
isKeyboardRaised = keyboardRaised;
|
isKeyboardRaised = keyboardRaised;
|
||||||
|
|
Loading…
Reference in a new issue