You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes. - Unify IME behaviour, add inline composition string display on Windows and X11. - Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events. - Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS. - Add support for media key handling on macOS. Co-authored-by: Raul Santos <raulsntos@gmail.com>
This commit is contained in:
@@ -274,14 +274,9 @@ void register_global_constants() {
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_7);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_8);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KP_9);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SUPER_L);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SUPER_R);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MENU);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HYPER_L);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HYPER_R);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HYPER);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HELP);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DIRECTION_L);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DIRECTION_R);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BACK);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, FORWARD);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, STOP);
|
||||
@@ -289,11 +284,6 @@ void register_global_constants() {
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEDOWN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEMUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, VOLUMEUP);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BASSBOOST);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BASSUP);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BASSDOWN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, TREBLEUP);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, TREBLEDOWN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIAPLAY);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIASTOP);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MEDIAPREVIOUS);
|
||||
@@ -392,72 +382,12 @@ void register_global_constants() {
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BAR);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BRACERIGHT);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASCIITILDE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NOBREAKSPACE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EXCLAMDOWN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CENT);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, STERLING);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CURRENCY);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, YEN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, BROKENBAR);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SECTION);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, COPYRIGHT);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ORDFEMININE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GUILLEMOTLEFT);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NOTSIGN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, HYPHEN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT_CUSTOM(Key, KEY_REGISTERED, KEY_REGISTERED);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MACRON);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DEGREE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PLUSMINUS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, TWOSUPERIOR);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, THREESUPERIOR);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MU);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PARAGRAPH);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, PERIODCENTERED);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CEDILLA);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ONESUPERIOR);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MASCULINE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GUILLEMOTRIGHT);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ONEQUARTER);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ONEHALF);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, THREEQUARTERS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, QUESTIONDOWN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AGRAVE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ACIRCUMFLEX);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ATILDE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ADIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ARING);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, AE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, CCEDILLA);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EGRAVE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ECIRCUMFLEX);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EDIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, IGRAVE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, IACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ICIRCUMFLEX);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, IDIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ETH);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, NTILDE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OGRAVE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OCIRCUMFLEX);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OTILDE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ODIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, MULTIPLY);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, OOBLIQUE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UGRAVE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UCIRCUMFLEX);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UDIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, YACUTE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, THORN);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SSHARP);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, DIVISION);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, YDIAERESIS);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GLOBE);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KEYBOARD);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_EISU);
|
||||
BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_KANA);
|
||||
|
||||
BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_CODE_MASK, CODE_MASK);
|
||||
BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_MODIFIER_MASK, MODIFIER_MASK);
|
||||
|
||||
Reference in New Issue
Block a user