mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
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:
@@ -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">
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user