diff --git a/interface/resources/html/raiseAndLowerKeyboard.js b/interface/resources/html/raiseAndLowerKeyboard.js
index 27ead23124..f87312b838 100644
--- a/interface/resources/html/raiseAndLowerKeyboard.js
+++ b/interface/resources/html/raiseAndLowerKeyboard.js
@@ -14,7 +14,6 @@
var isWindowFocused = true;
var isKeyboardRaised = false;
var isNumericKeyboard = false;
- var KEYBOARD_HEIGHT = 200;
function shouldRaiseKeyboard() {
var nodeName = document.activeElement.nodeName;
@@ -56,13 +55,15 @@
}
if (!isKeyboardRaised) {
- var delta = document.activeElement.getBoundingClientRect().bottom + 10
- - (document.body.clientHeight - KEYBOARD_HEIGHT);
- if (delta > 0) {
- setTimeout(function () {
- document.body.scrollTop += delta;
- }, 500); // Allow time for keyboard to be raised in QML.
- }
+ var timeout = setTimeout(function () {
+ clearTimeout(timeout);
+
+ var elementRect = document.activeElement.getBoundingClientRect();
+ var absoluteElementTop = elementRect.top + window.scrollY;
+ var middle = absoluteElementTop - (window.innerHeight / 2);
+
+ window.scrollTo(0, middle);
+ }, 500); // Allow time for keyboard to be raised in QML.
}
isKeyboardRaised = keyboardRaised;