mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 09:03:21 +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> | ||||
|  | ||||
|         <!-- Keyboard event target for platforms with native OSKs --> | ||||
|         <textarea id="eventTarget">GUAC</textarea> | ||||
|         <textarea id="eventTarget"></textarea> | ||||
|  | ||||
|         <!-- Display --> | ||||
|         <div id="display"> | ||||
|   | ||||
| @@ -351,9 +351,7 @@ var GuacamoleUI = { | ||||
|  | ||||
|     // Reset event target (add content, reposition cursor in middle. | ||||
|     GuacamoleUI.resetEventTarget = function() { | ||||
|         GuacamoleUI.eventTarget.value = "GUAC"; | ||||
|         GuacamoleUI.eventTarget.selectionStart = | ||||
|         GuacamoleUI.eventTarget.selectionEnd   = 2; | ||||
|         GuacamoleUI.eventTarget.value = ""; | ||||
|     }; | ||||
|  | ||||
|     // Detect long-press at bottom of screen | ||||
| @@ -600,6 +598,41 @@ GuacamoleUI.attach = function(guac) { | ||||
|         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 | ||||
|     GuacamoleUI.clipboard.onchange = function() { | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user