terminal_input.js¶
Gate One's bundled Terminal application JavaScript (Input module) (source).
- 
GateOne.Terminal.Input¶
- Terminal-specific keyboard and mouse input stuff. - 
GateOne.Terminal.Input.init()¶
- Creates - GateOne.Terminal.Input.inputNodeto capture keys/IME composition and attaches appropriate events.
 - 
GateOne.Terminal.Input.sendChars()¶
- pop()s out the current - charBufferand sends it to the server.
 - 
GateOne.Terminal.Input.onMouseWheel(e)¶
- Attached to the mousewheel event on the Terminal application container; calls - preventDefault()if "mouse motion" event tracking mode is enabled and instead sends equivalent xterm escape sequences to the server to emulate mouse scroll events.- If the - Altkey is held the user will be able to scroll normally.
 - 
GateOne.Terminal.Input.onMouseMove(e)¶
- Attached to the - contextmenuevent on the Terminal application container; calls- preventDefault()if "mouse motion" event tracking mode is enabled to prevent the usual context menu from popping up.- If the - Altkey is held while right-clicking the normal context menu will appear.
 - 
GateOne.Terminal.Input.onMouseMove(e)
- Attached to the - mousemoveevent on the Terminal application container when mouse event tracking is enabled; pre-sets- GateOne.Terminal.mouseUpEscSeqwith the current mouse coordinates.
 - 
GateOne.Terminal.Input.onMouseDown(e)¶
- Attached to the - mousedownevent on the Terminal application container; performs the following actions based on which mouse button was used:- Left-click: Hides the pastearea.
- Right-click: If no text is highlighted in the terminal, makes sure the pastearea is visible and has focus.
- Middle-click: Makes sure the pastearea is visible and has focus so that middle-click-to-paste events (X11) will work properly. Alternatively, if there is highlighted text in the terminal a paste event will be emulated (regardless of platform).
 
 - 
GateOne.Terminal.Input.onMouseUp(e)¶
- Attached to the - mouseupevent on the Terminal application container; prevents the pastearea from being shown if text is highlighted in the terminal (so users can right-click to copy). Also prevents the pastearea from being instantly re-enabled when clicking in order to allow double-click events to pass through to the terminal (to highlight words).- The last thing this function does every time it is called is to change focus to - GateOne.Terminal.Input.inputNode.
 - 
GateOne.Terminal.Input.onCopy(e)¶
- Returns all 'pastearea' elements to a visible state after a copy operation so that the browser's regular context menu will be usable again (for pasting). Also displays a message to the user letting them know that the text was copied successfully (because having your highlighted text suddenly disappear isn't that intuitive). 
 - 
GateOne.Terminal.Input.capture()¶
- Sets focus on the terminal and attaches all the relevant events (mousedown, mouseup, keydown, etc). 
 - 
GateOne.Terminal.Input.disableCapture(e[, force])¶
- Disables the various input events that capture mouse and keystroke events. This allows things like input elements and forms to work properly (so keystrokes can pass through without intervention). 
 - 
GateOne.Terminal.Input.onPaste(e)¶
- Attached to the 'paste' event on the terminal application container; converts pasted text to plaintext and sends it to the selected terminal. 
 - 
GateOne.Terminal.Input.queue(text)¶
- Adds 'text' to the - GateOne.Terminal.Input.charBufferArray (to be sent to the server when ready via- GateOne.Terminal.sendChars()).
 - 
GateOne.Terminal.Input.queue(cars)
- Prepends the ESC key string ( - String.fromCharCode(27)) to special character sequences (e.g. PgUp, PgDown, Arrow keys, etc) before adding them to the charBuffer
 - 
GateOne.Terminal.Input.onCompositionStart(e)¶
- Called when we encounter the - compositionstartevent which indicates the use of an IME. That would most commonly be a mobile phone software keyboard or foreign language input methods (e.g. Anthy for Japanese, Chinese, etc).- Ensures that - GateOne.Terminal.Input.inputNodeis visible and as close to the cursor position as possible.
 - 
GateOne.Terminal.Input.onCompositionEnd(e)¶
- Called when we encounter the - compositionendevent which indicates the IME has completed a composition. Sends what was composed to the server and ensures that- GateOne.Terminal.Input.inputNodeis emptied & hidden.
 - 
GateOne.Terminal.Input.onCompositionUpdate(e)¶
- Called when we encounter the 'compositionupdate' event which indicates incoming characters; sets - GateOne.Terminal.Input.composition.
 - 
GateOne.Terminal.Input.onKeyUp(e)¶
- Called when the terminal encounters a - keyupevent; just ensures that- GateOne.Terminal.Input.inputNodeis emptied so we don't accidentally send characters we shouldn't.
 - 
GateOne.Terminal.Input.onInput(e)¶
- Attached to the - inputevent on- GateOne.Terminal.Input.inputNode; sends its contents. If the user is in the middle of composing text via an IME it will wait until their composition is complete before sending the characters.
 - 
GateOne.Terminal.Input.onKeyDown(e)¶
- Handles keystroke events by determining which kind of event occurred and how/whether it should be sent to the server as specific characters or escape sequences. 
 - 
GateOne.Terminal.Input.execKeystroke(e)¶
- For the Terminal application, executes the keystroke or shortcut associated with the given keydown event (e). 
 - 
GateOne.Terminal.Input.emulateKey(e, skipF11check)¶
- This method handles all regular keys registered via onkeydown events (not onkeypress) If skipF11check is true, the F11 (fullscreen check) logic will be skipped. - Note - Shift+keyalso winds up being handled by this function.
 - 
GateOne.Terminal.Input.emulateKeyCombo(e)¶
- This method translates ctrl/alt/meta key combos such as - Ctrl-cinto their string equivalents using- GateOne.Terminal.Input.keyTableand sends them to the server.
 
-