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:
beholder 2017-09-28 00:28:54 +03:00
parent 88097bb39f
commit 00c3dcee2f

View file

@ -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;