Commit Graph
96 Commits
Author SHA1 Message Date
Corentin SORIANO 8fbd4b124d GUACAMOLE-2167: Fix for incorrect handling of the ALTGR key. 2025-11-09 13:49:21 +01:00
Mike Jumper 3b7473d114 GUACAMOLE-1823: Merge changes addressing unreliable capslock behavior under MacOS Chrome. 2025-09-13 09:31:17 -07:00
maeda577 d07957f79c GUACAMOLE-520: Add mapping of Japanese IME keys. 2024-05-22 20:32:05 +09:00
Miroslav Šedivý 545bc275de GUACAMOLE-1823: Update unreliable capslock keyup event semantic since now it also covers keydown event. 2023-07-12 22:45:56 +02:00
Miroslav Šedivý d42bdd33be GUACAMOLE-1823: Fix capslock on macos chrome. 2023-07-12 22:41:36 +02:00
James Muehlner 1f8183357c GUACAMOLE-1113: Always treat alt as AltGr on Mac. 2023-06-15 16:18:36 +00:00
James Muehlner 9e938be878 GUACAMOLE-1113: Restore right alt in keyboard handler. 2023-06-15 16:18:30 +00:00
James Muehlner fac646b8e0 GUACAMOLE-1810: Fix meta handling on Mac firefox. 2023-06-12 19:40:16 +00:00
Michael Jumper 1ca1161a68 GUACAMOLE-986: Update documentation of all parameters/returns to specify non-nullable and/or primitive types where appropriate. 2021-12-18 23:03:57 -08:00
Michael Jumper 6608ba3e2d GUACAMOLE-1386: Centralize abstraction of KeyboardEvent contents within KeyEvent and its subclasses. 2021-08-12 22:43:16 -07:00
Michael Jumper b629b2137e GUACAMOLE-1386: Do not synchronize modifiers based on key events that were dropped/rejected. 2021-08-12 22:43:16 -07:00
Michael Jumper b347a118fa GUACAMOLE-1386: Defer handling of "Meta" until it is known to be functioning as a modifier.
Some platforms like ChromeOS use the Meta key as an alternative method
for typing individual keys like Home (Meta+Left) and End (Meta+Right).
In these cases, Meta does not function as a modifier and is actually
implicitly released once the keyboard shortcut is identified.

Since we cannot know whether Meta is actually Meta until it's confirmed
to be used by itself or with another key, we need to defer handling of
Meta keydown until either (1) Meta is released without having been used
with another key or (2) Meta is used as a modifier with another key.
2021-08-12 16:33:19 -07:00
Michael Jumper 5c9483a810 GUACAMOLE-1386: Correct/add "Menu" key definition, which is also not "Super". 2021-07-26 20:26:39 -07:00
Michael Jumper 01a5f6cdb9 GUACAMOLE-1386: Correct keyboard definition of "Windows" key as "Meta", not "Super". 2021-07-26 20:26:04 -07:00
Jakub Vrána f722072807 GUACAMOLE-986: Add non-nullable modifier to return type of functions never returning null
Alternatively use a primitive type instead of nullable boxed type.
2020-03-11 13:27:56 +01:00
Michael Jumper e3c1b6ac98 GUACAMOLE-232: Mark key as implicitly pressed only when pressed due to another, identifiable key event. 2018-10-03 21:30:26 -07:00
Michael Jumper 9d8027c5cd GUACAMOLE-232: Correct inverted explicit/implicit logic. 2018-10-03 11:47:07 -07:00
Michael Jumper eead01944e GUACAMOLE-232: Rely on recentKeysym for keyup only when the guessed key doesn't seem to actually be pressed. 2018-10-03 10:29:39 -07:00
Michael Jumper 2ec7e48ca9 GUACAMOLE-232: Track whether keys were pressed implicitly. Automatically release all keys if only implicitly pressed keys remain. 2018-10-03 10:29:39 -07:00
Michael Jumper 6f0787f0c1 GUACAMOLE-232: Reset tracking of recent keysym after key is released. 2018-10-02 22:19:40 -07:00
Michael Jumper 8c096778bc GUACAMOLE-232: Fall back to using recent keysym only after failing to determine released key by keycode. 2018-10-02 22:19:15 -07:00
Michael Jumper 035813ff0b GUACAMOLE-232: Take best guess of key being pressed/released into account before assuming modifier states need to be resynced. 2018-10-02 22:18:17 -07:00
Michael Jumper cdc5dec2c9 GUACAMOLE-517: Correct keysym definition of "Print Screen" key. 2018-03-06 12:16:18 -08:00
Michael Jumper 5db2e3cae7 GUACAMOLE-161: Merge changes adding Caps Lock to the do-not-auto-repeat list. 2018-03-03 12:27:01 -08:00
Frode Langelo a28c81c001 GUACAMOLE-161: Add CapsLock to the no_repeat key list. 2018-02-01 16:43:15 +00:00
Michael Jumper b6b7a37000 GUACAMOLE-161: Do not rely on receiving keyup for Caps Lock on Mac (only keydown is dispatched). 2018-01-17 18:54:19 -08:00
Michael Jumper a49bfadebf GUACAMOLE-352: Refactor Guacamole.Keyboard.InputSink to Guacamole.InputSink. 2018-01-16 10:20:43 -08:00
Michael Jumper b61f12d69d GUACAMOLE-352: Remove margin and padding from input sink. 2018-01-16 10:20:43 -08:00
Michael Jumper 4b93347617 GUACAMOLE-352: Hide input sink field in bottom-left corner for sake of input method dialogs. 2018-01-16 10:20:43 -08:00
Michael Jumper 376c4380d5 GUACAMOLE-352: Monitor input and composition events to keep input sink contents clear. 2018-01-16 10:20:43 -08:00
Michael Jumper 802fec9bfd GUACAMOLE-352: Handle input/composition events while bubbling. 2018-01-16 10:20:43 -08:00
Michael Jumper 9f6b2fad37 GUACAMOLE-352: Additionally click() while attempting to refocus the input sink field. Do not rely on autofocus, which may result in the field being partly focused (outlined as focused) but not receiving any actual text input. 2018-01-16 10:20:42 -08:00
Michael Jumper e5e01beb60 GUACAMOLE-352: Ignore other input fields if they are invisible. 2018-01-16 10:20:42 -08:00
Michael Jumper 7b29f7b082 GUACAMOLE-352: Do not clear InputSink field upon "input" event (may be fired after a partial composition). 2018-01-16 10:20:42 -08:00
Michael Jumper 5136b1cf8e GUACAMOLE-352: Clarify that Guacamole.Keyboard can be given an Element or a Document. 2018-01-16 10:20:42 -08:00
Michael Jumper 2d26d24dda GUACAMOLE-352: Allow additional elements to be added to a single Guacamole.Keyboard. 2018-01-16 10:20:41 -08:00
Michael Jumper 05822907b4 GUACAMOLE-352: Refocus InputSink through key events rather than clicks. 2018-01-16 09:50:54 -08:00
Michael Jumper f9a639d201 GUACAMOLE-352: Add Guacamole.Keyboard.InputSink object to serve as a reliable default destination for input events. 2018-01-16 09:50:54 -08:00
Michael Jumper 3d6a3aaa2a GUACAMOLE-352: Rely on isComposing property of InputEvent to determine whether the event should be ignored. 2018-01-16 09:50:54 -08:00
Michael Jumper 646f9732f3 GUACAMOLE-352: Track in-progress composition, ignoring "input" events for a composition which is known to be incomplete. 2018-01-16 09:50:54 -08:00
Michael Jumper fd47d1d7ef GUACAMOLE-352: Only attempt to type fully-composed strings. 2018-01-16 09:50:54 -08:00
Michael Jumper cdacd57099 GUACAMOLE-352: Handle "input" / "compositionend" events in a mutually-exclusive manner, as they may conflict. 2018-01-16 09:50:54 -08:00
Michael Jumper 3ee73d835c GUACAMOLE-352: Handle both "input" and "compositionend" events as sources of keys. 2018-01-16 09:50:54 -08:00
Michael Jumper 9dc86119b0 GUACAMOLE-352: Do not attempt to send dead keys (only the composed key should be sent). 2018-01-16 09:50:54 -08:00
Nick Couchman 612d99b797 GUACAMOLE-232: Merge handle known platform/browser keyboard quirks semantically. 2018-01-16 12:00:18 -05:00
Michael Jumper c3d3093d25 GUACAMOLE-232: Automatically press modifiers if remote state does not match local state. 2018-01-15 14:04:15 -08:00
Michael Jumper 960e83f780 GUACAMOLE-232: Do not rely on receiving keyup events on iOS. 2018-01-15 00:25:24 -08:00
Michael Jumper d84f03afea GUACAMOLE-232: Semantically represent platform/browser key event quirks. 2018-01-15 00:24:34 -08:00
Michael Jumper 5ed1586f50 GUACAMOLE-447: Add UIKit key constants sometimes (incorrectly) used by iOS Safari. 2018-01-05 11:01:15 -08:00
Michael Jumper 1810ec971f GUACAMOLE-1: Relicense C and JavaScript files. 2016-03-28 20:50:18 -07:00