Add text field event target, focus event target if "Show Keyboard" is clicked and use exposed the menu via long-press. Ensure backspace always sends a key event by always keeping text within the event target.

This commit is contained in:
Michael Jumper
2012-03-21 16:10:49 -07:00
parent 8a7905e605
commit 0c4c47ecc4
2 changed files with 22 additions and 0 deletions

View File

@@ -54,6 +54,10 @@
</div>
<input id="eventTarget"
type="text"
style="width: 0; height: 0; position: fixed; opacity: 0"
value="x"/>
<!-- Display -->
<div id="display">

View File

@@ -8,6 +8,7 @@ var GuacamoleUI = {
"menuControl" : document.getElementById("menuControl"),
"touchMenu" : document.getElementById("touchMenu"),
"logo" : document.getElementById("status-logo"),
"eventTarget" : document.getElementById("eventTarget"),
"buttons": {
@@ -177,10 +178,19 @@ var GuacamoleUI = {
};
var assumeNativeOSK = false;
// Show/Hide keyboard
var keyboardResizeInterval = null;
GuacamoleUI.buttons.showKeyboard.onclick = function() {
// If we think the platform has a native OSK, use the event target to
// cause it to display.
if (assumeNativeOSK) {
GuacamoleUI.eventTarget.focus();
return;
}
var displayed = GuacamoleUI.containers.keyboard.style.display;
if (displayed != "block") {
GuacamoleUI.containers.keyboard.style.display = "block";
@@ -282,6 +292,9 @@ var GuacamoleUI = {
menuShowLongPressTimeout = window.setTimeout(function() {
menuShowLongPressTimeout = null;
// Assume native OSK if menu shown via long-press
assumeNativeOSK = true;
GuacamoleUI.showMenu();
}, 800);
@@ -294,6 +307,11 @@ var GuacamoleUI = {
menuShowLongPressTimeout = null;
};
// Ensure the event target ALWAYS has text inside.
GuacamoleUI.eventTarget.onchange = function() {
GuacamoleUI.eventTarget.value = "x";
};
// Detect long-press at bottom of screen
document.body.addEventListener('touchstart', GuacamoleUI.startLongPressDetect, true);