mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
No need for constant "GUAC" or reselection. Added oninput handler such that voice input, etc. will also work!
This commit is contained in:
@@ -55,7 +55,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Keyboard event target for platforms with native OSKs -->
|
<!-- Keyboard event target for platforms with native OSKs -->
|
||||||
<textarea id="eventTarget">GUAC</textarea>
|
<textarea id="eventTarget"></textarea>
|
||||||
|
|
||||||
<!-- Display -->
|
<!-- Display -->
|
||||||
<div id="display">
|
<div id="display">
|
||||||
|
@@ -351,9 +351,7 @@ var GuacamoleUI = {
|
|||||||
|
|
||||||
// Reset event target (add content, reposition cursor in middle.
|
// Reset event target (add content, reposition cursor in middle.
|
||||||
GuacamoleUI.resetEventTarget = function() {
|
GuacamoleUI.resetEventTarget = function() {
|
||||||
GuacamoleUI.eventTarget.value = "GUAC";
|
GuacamoleUI.eventTarget.value = "";
|
||||||
GuacamoleUI.eventTarget.selectionStart =
|
|
||||||
GuacamoleUI.eventTarget.selectionEnd = 2;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Detect long-press at bottom of screen
|
// Detect long-press at bottom of screen
|
||||||
@@ -600,6 +598,41 @@ GuacamoleUI.attach = function(guac) {
|
|||||||
guac.disconnect();
|
guac.disconnect();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// If text is input directly into event target without typing (as with
|
||||||
|
// voice input, for example), type automatically.
|
||||||
|
GuacamoleUI.eventTarget.oninput = function(e) {
|
||||||
|
|
||||||
|
// Get input text
|
||||||
|
var text = GuacamoleUI.eventTarget.value;
|
||||||
|
|
||||||
|
// Send each character
|
||||||
|
for (var i=0; i<text.length; i++) {
|
||||||
|
|
||||||
|
// Get char code
|
||||||
|
var charCode = text.charCodeAt(i);
|
||||||
|
|
||||||
|
// Convert to keysym
|
||||||
|
var keysym = 0x003F; // Default to a question mark
|
||||||
|
if (charCode >= 0x0000 && charCode <= 0x00FF)
|
||||||
|
keysym = charCode;
|
||||||
|
else if (charCode >= 0x0100 && charCode <= 0x10FFFF)
|
||||||
|
keysym = 0x01000000 | charCode;
|
||||||
|
|
||||||
|
// Press and release key
|
||||||
|
guac.sendKeyEvent(1, keysym);
|
||||||
|
guac.sendKeyEvent(0, keysym);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset target
|
||||||
|
GuacamoleUI.resetEventTarget();
|
||||||
|
|
||||||
|
// Stop event
|
||||||
|
e.preventDefault();
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Handle clipboard events
|
// Handle clipboard events
|
||||||
GuacamoleUI.clipboard.onchange = function() {
|
GuacamoleUI.clipboard.onchange = function() {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user