From ec001299884ccdbdec54d561d38b0f9b7f49cbfd Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 28 Sep 2016 12:51:00 +1300 Subject: [PATCH] Don't flood event bridge with raise/lower keyboard messages from HTML --- .../resources/html/raiseAndLowerKeyboard.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/interface/resources/html/raiseAndLowerKeyboard.js b/interface/resources/html/raiseAndLowerKeyboard.js index 723767790a..84a166ace3 100644 --- a/interface/resources/html/raiseAndLowerKeyboard.js +++ b/interface/resources/html/raiseAndLowerKeyboard.js @@ -11,6 +11,7 @@ var POLL_FREQUENCY = 500; // ms var MAX_WARNINGS = 3; var numWarnings = 0; + var isKeyboardRaised = false; function shouldRaiseKeyboard() { if (document.activeElement.nodeName == "INPUT" || document.activeElement.nodeName == "TEXTAREA") { @@ -28,13 +29,15 @@ }; setInterval(function () { - var event = shouldRaiseKeyboard() ? "_RAISE_KEYBOARD" : "_LOWER_KEYBOARD"; - if (typeof EventBridge != "undefined") { - EventBridge.emitWebEvent(event); - } else { - if (numWarnings < MAX_WARNINGS) { - console.log("WARNING: no global EventBridge object found"); - numWarnings++; + if (isKeyboardRaised !== shouldRaiseKeyboard()) { + isKeyboardRaised = !isKeyboardRaised; + if (typeof EventBridge != "undefined") { + EventBridge.emitWebEvent(isKeyboardRaised ? "_RAISE_KEYBOARD" : "_LOWER_KEYBOARD"); + } else { + if (numWarnings < MAX_WARNINGS) { + console.log("WARNING: no global EventBridge object found"); + numWarnings++; + } } } }, POLL_FREQUENCY);