Remove glfw key constants

This commit is contained in:
Kovid Goyal 2021-01-12 07:07:37 +05:30
parent f06eee8fe1
commit 774a6c8c8b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
9 changed files with 609 additions and 1305 deletions

View File

@ -142,6 +142,7 @@ last_code = start_code + len(functional_key_names) - 1
def patch_file(path: str, what: str, text: str, start_marker: str = '/* ', end_marker: str = ' */') -> None: def patch_file(path: str, what: str, text: str, start_marker: str = '/* ', end_marker: str = ' */') -> None:
simple_start_q = f'{start_marker}start {what}{end_marker}'
start_q = f'{start_marker}start {what} (auto generated by gen-key-constants.py do not edit){end_marker}' start_q = f'{start_marker}start {what} (auto generated by gen-key-constants.py do not edit){end_marker}'
end_q = f'{start_marker}end {what}{end_marker}' end_q = f'{start_marker}end {what}{end_marker}'
@ -150,7 +151,10 @@ def patch_file(path: str, what: str, text: str, start_marker: str = '/* ', end_m
try: try:
start = raw.index(start_q) start = raw.index(start_q)
except ValueError: except ValueError:
raise SystemExit(f'Failed to find "{start_q}" in {path}') try:
start = raw.index(simple_start_q)
except ValueError:
raise SystemExit(f'Failed to find "{simple_start_q}" in {path}')
try: try:
end = raw.index(end_q) end = raw.index(end_q)
except ValueError: except ValueError:
@ -164,13 +168,20 @@ def patch_file(path: str, what: str, text: str, start_marker: str = '/* ', end_m
def generate_glfw_header() -> None: def generate_glfw_header() -> None:
lines = [ lines = [
'typedef enum {', 'typedef enum {',
f' GLFW_FKEY_FIRST = 0x{start_code:x},', f' GLFW_FKEY_FIRST = 0x{start_code:x}u,',
] ]
klines, pyi, names = [], [], []
for name, code in name_to_code.items(): for name, code in name_to_code.items():
lines.append(f' GLFW_FKEY_{name.upper()} = 0x{code:x},') lines.append(f' GLFW_FKEY_{name.upper()} = 0x{code:x}u,')
lines.append(f' GLFW_FKEY_LAST = 0x{last_code:x}') klines.append(f' ADDC(GLFW_FKEY_{name.upper()});')
pyi.append(f'GLFW_FKEY_{name.upper()}: int')
names.append(f' case GLFW_FKEY_{name.upper()}: return "{name.upper()}";')
lines.append(f' GLFW_FKEY_LAST = 0x{last_code:x}u')
lines.append('} GLFWFunctionKey;') lines.append('} GLFWFunctionKey;')
patch_file('glfw/glfw3.h', 'functional key names', '\n'.join(lines)) patch_file('glfw/glfw3.h', 'functional key names', '\n'.join(lines))
patch_file('kitty/glfw.c', 'glfw functional keys', '\n'.join(klines))
patch_file('kitty/fast_data_types.pyi', 'glfw functional keys', '\n'.join(klines), start_marker='# ', end_marker='')
patch_file('glfw/input.c', 'functional key names', '\n'.join(names))
def generate_xkb_mapping() -> None: def generate_xkb_mapping() -> None:

506
glfw/glfw3.h vendored
View File

@ -344,310 +344,115 @@ extern "C" {
/* start functional key names (auto generated by gen-key-constants.py do not edit) */ /* start functional key names (auto generated by gen-key-constants.py do not edit) */
typedef enum { typedef enum {
GLFW_FKEY_FIRST = 0xe000, GLFW_FKEY_FIRST = 0xe000u,
GLFW_FKEY_ESCAPE = 0xe000, GLFW_FKEY_ESCAPE = 0xe000u,
GLFW_FKEY_ENTER = 0xe001, GLFW_FKEY_ENTER = 0xe001u,
GLFW_FKEY_TAB = 0xe002, GLFW_FKEY_TAB = 0xe002u,
GLFW_FKEY_BACKSPACE = 0xe003, GLFW_FKEY_BACKSPACE = 0xe003u,
GLFW_FKEY_INSERT = 0xe004, GLFW_FKEY_INSERT = 0xe004u,
GLFW_FKEY_DELETE = 0xe005, GLFW_FKEY_DELETE = 0xe005u,
GLFW_FKEY_LEFT = 0xe006, GLFW_FKEY_LEFT = 0xe006u,
GLFW_FKEY_RIGHT = 0xe007, GLFW_FKEY_RIGHT = 0xe007u,
GLFW_FKEY_UP = 0xe008, GLFW_FKEY_UP = 0xe008u,
GLFW_FKEY_DOWN = 0xe009, GLFW_FKEY_DOWN = 0xe009u,
GLFW_FKEY_PAGE_UP = 0xe00a, GLFW_FKEY_PAGE_UP = 0xe00au,
GLFW_FKEY_PAGE_DOWN = 0xe00b, GLFW_FKEY_PAGE_DOWN = 0xe00bu,
GLFW_FKEY_HOME = 0xe00c, GLFW_FKEY_HOME = 0xe00cu,
GLFW_FKEY_END = 0xe00d, GLFW_FKEY_END = 0xe00du,
GLFW_FKEY_CAPS_LOCK = 0xe00e, GLFW_FKEY_CAPS_LOCK = 0xe00eu,
GLFW_FKEY_SCROLL_LOCK = 0xe00f, GLFW_FKEY_SCROLL_LOCK = 0xe00fu,
GLFW_FKEY_NUM_LOCK = 0xe010, GLFW_FKEY_NUM_LOCK = 0xe010u,
GLFW_FKEY_PRINT_SCREEN = 0xe011, GLFW_FKEY_PRINT_SCREEN = 0xe011u,
GLFW_FKEY_PAUSE = 0xe012, GLFW_FKEY_PAUSE = 0xe012u,
GLFW_FKEY_MENU = 0xe013, GLFW_FKEY_MENU = 0xe013u,
GLFW_FKEY_F1 = 0xe014, GLFW_FKEY_F1 = 0xe014u,
GLFW_FKEY_F2 = 0xe015, GLFW_FKEY_F2 = 0xe015u,
GLFW_FKEY_F3 = 0xe016, GLFW_FKEY_F3 = 0xe016u,
GLFW_FKEY_F4 = 0xe017, GLFW_FKEY_F4 = 0xe017u,
GLFW_FKEY_F5 = 0xe018, GLFW_FKEY_F5 = 0xe018u,
GLFW_FKEY_F6 = 0xe019, GLFW_FKEY_F6 = 0xe019u,
GLFW_FKEY_F7 = 0xe01a, GLFW_FKEY_F7 = 0xe01au,
GLFW_FKEY_F8 = 0xe01b, GLFW_FKEY_F8 = 0xe01bu,
GLFW_FKEY_F9 = 0xe01c, GLFW_FKEY_F9 = 0xe01cu,
GLFW_FKEY_F10 = 0xe01d, GLFW_FKEY_F10 = 0xe01du,
GLFW_FKEY_F11 = 0xe01e, GLFW_FKEY_F11 = 0xe01eu,
GLFW_FKEY_F12 = 0xe01f, GLFW_FKEY_F12 = 0xe01fu,
GLFW_FKEY_F13 = 0xe020, GLFW_FKEY_F13 = 0xe020u,
GLFW_FKEY_F14 = 0xe021, GLFW_FKEY_F14 = 0xe021u,
GLFW_FKEY_F15 = 0xe022, GLFW_FKEY_F15 = 0xe022u,
GLFW_FKEY_F16 = 0xe023, GLFW_FKEY_F16 = 0xe023u,
GLFW_FKEY_F17 = 0xe024, GLFW_FKEY_F17 = 0xe024u,
GLFW_FKEY_F18 = 0xe025, GLFW_FKEY_F18 = 0xe025u,
GLFW_FKEY_F19 = 0xe026, GLFW_FKEY_F19 = 0xe026u,
GLFW_FKEY_F20 = 0xe027, GLFW_FKEY_F20 = 0xe027u,
GLFW_FKEY_F21 = 0xe028, GLFW_FKEY_F21 = 0xe028u,
GLFW_FKEY_F22 = 0xe029, GLFW_FKEY_F22 = 0xe029u,
GLFW_FKEY_F23 = 0xe02a, GLFW_FKEY_F23 = 0xe02au,
GLFW_FKEY_F24 = 0xe02b, GLFW_FKEY_F24 = 0xe02bu,
GLFW_FKEY_F25 = 0xe02c, GLFW_FKEY_F25 = 0xe02cu,
GLFW_FKEY_F26 = 0xe02d, GLFW_FKEY_F26 = 0xe02du,
GLFW_FKEY_F27 = 0xe02e, GLFW_FKEY_F27 = 0xe02eu,
GLFW_FKEY_F28 = 0xe02f, GLFW_FKEY_F28 = 0xe02fu,
GLFW_FKEY_F29 = 0xe030, GLFW_FKEY_F29 = 0xe030u,
GLFW_FKEY_F30 = 0xe031, GLFW_FKEY_F30 = 0xe031u,
GLFW_FKEY_F31 = 0xe032, GLFW_FKEY_F31 = 0xe032u,
GLFW_FKEY_F32 = 0xe033, GLFW_FKEY_F32 = 0xe033u,
GLFW_FKEY_F33 = 0xe034, GLFW_FKEY_F33 = 0xe034u,
GLFW_FKEY_F34 = 0xe035, GLFW_FKEY_F34 = 0xe035u,
GLFW_FKEY_F35 = 0xe036, GLFW_FKEY_F35 = 0xe036u,
GLFW_FKEY_KP_0 = 0xe037, GLFW_FKEY_KP_0 = 0xe037u,
GLFW_FKEY_KP_1 = 0xe038, GLFW_FKEY_KP_1 = 0xe038u,
GLFW_FKEY_KP_2 = 0xe039, GLFW_FKEY_KP_2 = 0xe039u,
GLFW_FKEY_KP_3 = 0xe03a, GLFW_FKEY_KP_3 = 0xe03au,
GLFW_FKEY_KP_4 = 0xe03b, GLFW_FKEY_KP_4 = 0xe03bu,
GLFW_FKEY_KP_5 = 0xe03c, GLFW_FKEY_KP_5 = 0xe03cu,
GLFW_FKEY_KP_6 = 0xe03d, GLFW_FKEY_KP_6 = 0xe03du,
GLFW_FKEY_KP_7 = 0xe03e, GLFW_FKEY_KP_7 = 0xe03eu,
GLFW_FKEY_KP_8 = 0xe03f, GLFW_FKEY_KP_8 = 0xe03fu,
GLFW_FKEY_KP_9 = 0xe040, GLFW_FKEY_KP_9 = 0xe040u,
GLFW_FKEY_KP_DECIMAL = 0xe041, GLFW_FKEY_KP_DECIMAL = 0xe041u,
GLFW_FKEY_KP_DIVIDE = 0xe042, GLFW_FKEY_KP_DIVIDE = 0xe042u,
GLFW_FKEY_KP_MULTIPLY = 0xe043, GLFW_FKEY_KP_MULTIPLY = 0xe043u,
GLFW_FKEY_KP_SUBTRACT = 0xe044, GLFW_FKEY_KP_SUBTRACT = 0xe044u,
GLFW_FKEY_KP_ADD = 0xe045, GLFW_FKEY_KP_ADD = 0xe045u,
GLFW_FKEY_KP_ENTER = 0xe046, GLFW_FKEY_KP_ENTER = 0xe046u,
GLFW_FKEY_KP_EQUAL = 0xe047, GLFW_FKEY_KP_EQUAL = 0xe047u,
GLFW_FKEY_KP_SEPARATOR = 0xe048, GLFW_FKEY_KP_SEPARATOR = 0xe048u,
GLFW_FKEY_KP_LEFT = 0xe049, GLFW_FKEY_KP_LEFT = 0xe049u,
GLFW_FKEY_KP_RIGHT = 0xe04a, GLFW_FKEY_KP_RIGHT = 0xe04au,
GLFW_FKEY_KP_UP = 0xe04b, GLFW_FKEY_KP_UP = 0xe04bu,
GLFW_FKEY_KP_DOWN = 0xe04c, GLFW_FKEY_KP_DOWN = 0xe04cu,
GLFW_FKEY_KP_PAGE_UP = 0xe04d, GLFW_FKEY_KP_PAGE_UP = 0xe04du,
GLFW_FKEY_KP_PAGE_DOWN = 0xe04e, GLFW_FKEY_KP_PAGE_DOWN = 0xe04eu,
GLFW_FKEY_KP_HOME = 0xe04f, GLFW_FKEY_KP_HOME = 0xe04fu,
GLFW_FKEY_KP_END = 0xe050, GLFW_FKEY_KP_END = 0xe050u,
GLFW_FKEY_KP_INSERT = 0xe051, GLFW_FKEY_KP_INSERT = 0xe051u,
GLFW_FKEY_KP_DELETE = 0xe052, GLFW_FKEY_KP_DELETE = 0xe052u,
GLFW_FKEY_LEFT_SHIFT = 0xe053, GLFW_FKEY_LEFT_SHIFT = 0xe053u,
GLFW_FKEY_LEFT_CONTROL = 0xe054, GLFW_FKEY_LEFT_CONTROL = 0xe054u,
GLFW_FKEY_LEFT_ALT = 0xe055, GLFW_FKEY_LEFT_ALT = 0xe055u,
GLFW_FKEY_LEFT_SUPER = 0xe056, GLFW_FKEY_LEFT_SUPER = 0xe056u,
GLFW_FKEY_RIGHT_SHIFT = 0xe057, GLFW_FKEY_RIGHT_SHIFT = 0xe057u,
GLFW_FKEY_RIGHT_CONTROL = 0xe058, GLFW_FKEY_RIGHT_CONTROL = 0xe058u,
GLFW_FKEY_RIGHT_ALT = 0xe059, GLFW_FKEY_RIGHT_ALT = 0xe059u,
GLFW_FKEY_RIGHT_SUPER = 0xe05a, GLFW_FKEY_RIGHT_SUPER = 0xe05au,
GLFW_FKEY_MEDIA_PLAY = 0xe05b, GLFW_FKEY_MEDIA_PLAY = 0xe05bu,
GLFW_FKEY_MEDIA_PAUSE = 0xe05c, GLFW_FKEY_MEDIA_PAUSE = 0xe05cu,
GLFW_FKEY_MEDIA_PLAY_PAUSE = 0xe05d, GLFW_FKEY_MEDIA_PLAY_PAUSE = 0xe05du,
GLFW_FKEY_MEDIA_REVERSE = 0xe05e, GLFW_FKEY_MEDIA_REVERSE = 0xe05eu,
GLFW_FKEY_MEDIA_STOP = 0xe05f, GLFW_FKEY_MEDIA_STOP = 0xe05fu,
GLFW_FKEY_MEDIA_FAST_FORWARD = 0xe060, GLFW_FKEY_MEDIA_FAST_FORWARD = 0xe060u,
GLFW_FKEY_MEDIA_REWIND = 0xe061, GLFW_FKEY_MEDIA_REWIND = 0xe061u,
GLFW_FKEY_MEDIA_TRACK_NEXT = 0xe062, GLFW_FKEY_MEDIA_TRACK_NEXT = 0xe062u,
GLFW_FKEY_MEDIA_TRACK_PREVIOUS = 0xe063, GLFW_FKEY_MEDIA_TRACK_PREVIOUS = 0xe063u,
GLFW_FKEY_MEDIA_RECORD = 0xe064, GLFW_FKEY_MEDIA_RECORD = 0xe064u,
GLFW_FKEY_LOWER_VOLUME = 0xe065, GLFW_FKEY_LOWER_VOLUME = 0xe065u,
GLFW_FKEY_RAISE_VOLUME = 0xe066, GLFW_FKEY_RAISE_VOLUME = 0xe066u,
GLFW_FKEY_MUTE_VOLUME = 0xe067, GLFW_FKEY_MUTE_VOLUME = 0xe067u,
GLFW_FKEY_LAST = 0xe067 GLFW_FKEY_LAST = 0xe067u
} GLFWFunctionKey; } GLFWFunctionKey;
/* end functional key names */ /* end functional key names */
/* The unknown key */
#define GLFW_KEY_UNKNOWN -1
/* Printable keys */
#define GLFW_KEY_SPACE 32
#define GLFW_KEY_EXCLAM 33 /* ! */
#define GLFW_KEY_DOUBLE_QUOTE 34 /* " */
#define GLFW_KEY_NUMBER_SIGN 35 /* # */
#define GLFW_KEY_DOLLAR 36 /* $ */
#define GLFW_KEY_AMPERSAND 38 /* & */
#define GLFW_KEY_APOSTROPHE 39 /* ' */
#define GLFW_KEY_PARENTHESIS_LEFT 40 /* ( */
#define GLFW_KEY_PARENTHESIS_RIGHT 41 /* ) */
#define GLFW_KEY_PLUS 43 /* + */
#define GLFW_KEY_COMMA 44 /* , */
#define GLFW_KEY_MINUS 45 /* - */
#define GLFW_KEY_PERIOD 46 /* . */
#define GLFW_KEY_SLASH 47 /* / */
#define GLFW_KEY_0 48
#define GLFW_KEY_1 49
#define GLFW_KEY_2 50
#define GLFW_KEY_3 51
#define GLFW_KEY_4 52
#define GLFW_KEY_5 53
#define GLFW_KEY_6 54
#define GLFW_KEY_7 55
#define GLFW_KEY_8 56
#define GLFW_KEY_9 57
#define GLFW_KEY_COLON 58 /* : */
#define GLFW_KEY_SEMICOLON 59 /* ; */
#define GLFW_KEY_LESS 60 /* < */
#define GLFW_KEY_EQUAL 61 /* = */
#define GLFW_KEY_GREATER 62 /* > */
#define GLFW_KEY_AT 64 /* @ */
#define GLFW_KEY_A 65
#define GLFW_KEY_B 66
#define GLFW_KEY_C 67
#define GLFW_KEY_D 68
#define GLFW_KEY_E 69
#define GLFW_KEY_F 70
#define GLFW_KEY_G 71
#define GLFW_KEY_H 72
#define GLFW_KEY_I 73
#define GLFW_KEY_J 74
#define GLFW_KEY_K 75
#define GLFW_KEY_L 76
#define GLFW_KEY_M 77
#define GLFW_KEY_N 78
#define GLFW_KEY_O 79
#define GLFW_KEY_P 80
#define GLFW_KEY_Q 81
#define GLFW_KEY_R 82
#define GLFW_KEY_S 83
#define GLFW_KEY_T 84
#define GLFW_KEY_U 85
#define GLFW_KEY_V 86
#define GLFW_KEY_W 87
#define GLFW_KEY_X 88
#define GLFW_KEY_Y 89
#define GLFW_KEY_Z 90
#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
#define GLFW_KEY_BACKSLASH 92 /* \ */
#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
#define GLFW_KEY_CIRCUMFLEX 94 /* ^ */
#define GLFW_KEY_UNDERSCORE 95 /* _ */
#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
#define GLFW_KEY_PARAGRAPH 167 /* § */
#define GLFW_KEY_MASCULINE 186 /* º */
#define GLFW_KEY_A_GRAVE 192 /* À */
#define GLFW_KEY_A_DIAERESIS 196 /* Ä */
#define GLFW_KEY_A_RING 197 /* Å */
#define GLFW_KEY_AE 198 /* Æ */
#define GLFW_KEY_C_CEDILLA 199 /* Ç */
#define GLFW_KEY_E_GRAVE 200 /* È */
#define GLFW_KEY_E_ACUTE 201 /* É */
#define GLFW_KEY_I_GRAVE 204 /* Ì */
#define GLFW_KEY_N_TILDE 209 /* Ñ */
#define GLFW_KEY_O_GRAVE 210 /* Ò */
#define GLFW_KEY_O_DIAERESIS 214 /* Ö */
#define GLFW_KEY_O_SLASH 216 /* Ø */
#define GLFW_KEY_U_GRAVE 217 /* Ù */
#define GLFW_KEY_U_DIAERESIS 220 /* Ü */
#define GLFW_KEY_S_SHARP 222 /* ß */
#define GLFW_KEY_CYRILLIC_A 223 /* А */
#define GLFW_KEY_CYRILLIC_BE 224 /* Б */
#define GLFW_KEY_CYRILLIC_VE 225 /* В */
#define GLFW_KEY_CYRILLIC_GHE 226 /* Г */
#define GLFW_KEY_CYRILLIC_DE 227 /* Д */
#define GLFW_KEY_CYRILLIC_IE 228 /* Е */
#define GLFW_KEY_CYRILLIC_ZHE 229 /* Ж */
#define GLFW_KEY_CYRILLIC_ZE 230 /* З */
#define GLFW_KEY_CYRILLIC_I 231 /* И */
#define GLFW_KEY_CYRILLIC_SHORT_I 232 /* Й */
#define GLFW_KEY_CYRILLIC_KA 233 /* К */
#define GLFW_KEY_CYRILLIC_EL 234 /* Л */
#define GLFW_KEY_CYRILLIC_EM 235 /* М */
#define GLFW_KEY_CYRILLIC_EN 236 /* Н */
#define GLFW_KEY_CYRILLIC_O 237 /* О */
#define GLFW_KEY_CYRILLIC_PE 238 /* П */
#define GLFW_KEY_CYRILLIC_ER 239 /* Р */
#define GLFW_KEY_CYRILLIC_ES 240 /* С */
#define GLFW_KEY_CYRILLIC_TE 241 /* Т */
#define GLFW_KEY_CYRILLIC_U 242 /* У */
#define GLFW_KEY_CYRILLIC_EF 243 /* Ф */
#define GLFW_KEY_CYRILLIC_HA 244 /* Х */
#define GLFW_KEY_CYRILLIC_TSE 245 /* Ц */
#define GLFW_KEY_CYRILLIC_CHE 246 /* Ч */
#define GLFW_KEY_CYRILLIC_SHA 247 /* Ш */
#define GLFW_KEY_CYRILLIC_SHCHA 248 /* Щ */
#define GLFW_KEY_CYRILLIC_HARD_SIGN 249 /* Ъ */
#define GLFW_KEY_CYRILLIC_YERU 250 /* Ы */
#define GLFW_KEY_CYRILLIC_SOFT_SIGN 251 /* Ь */
#define GLFW_KEY_CYRILLIC_E 252 /* Э */
#define GLFW_KEY_CYRILLIC_YU 253 /* Ю */
#define GLFW_KEY_CYRILLIC_YA 254 /* Я */
#define GLFW_KEY_CYRILLIC_IO 255 /* Ё */
#define GLFW_KEY_LAST_PRINTABLE GLFW_KEY_CYRILLIC_IO
/* Function keys */
#define GLFW_KEY_ESCAPE 256
#define GLFW_KEY_ENTER 257
#define GLFW_KEY_TAB 258
#define GLFW_KEY_BACKSPACE 259
#define GLFW_KEY_INSERT 260
#define GLFW_KEY_DELETE 261
#define GLFW_KEY_RIGHT 262
#define GLFW_KEY_LEFT 263
#define GLFW_KEY_DOWN 264
#define GLFW_KEY_UP 265
#define GLFW_KEY_PAGE_UP 266
#define GLFW_KEY_PAGE_DOWN 267
#define GLFW_KEY_HOME 268
#define GLFW_KEY_END 269
#define GLFW_KEY_CAPS_LOCK 280
#define GLFW_KEY_SCROLL_LOCK 281
#define GLFW_KEY_NUM_LOCK 282
#define GLFW_KEY_PRINT_SCREEN 283
#define GLFW_KEY_PAUSE 284
#define GLFW_KEY_F1 290
#define GLFW_KEY_F2 291
#define GLFW_KEY_F3 292
#define GLFW_KEY_F4 293
#define GLFW_KEY_F5 294
#define GLFW_KEY_F6 295
#define GLFW_KEY_F7 296
#define GLFW_KEY_F8 297
#define GLFW_KEY_F9 298
#define GLFW_KEY_F10 299
#define GLFW_KEY_F11 300
#define GLFW_KEY_F12 301
#define GLFW_KEY_F13 302
#define GLFW_KEY_F14 303
#define GLFW_KEY_F15 304
#define GLFW_KEY_F16 305
#define GLFW_KEY_F17 306
#define GLFW_KEY_F18 307
#define GLFW_KEY_F19 308
#define GLFW_KEY_F20 309
#define GLFW_KEY_F21 310
#define GLFW_KEY_F22 311
#define GLFW_KEY_F23 312
#define GLFW_KEY_F24 313
#define GLFW_KEY_F25 314
#define GLFW_KEY_KP_0 320
#define GLFW_KEY_KP_1 321
#define GLFW_KEY_KP_2 322
#define GLFW_KEY_KP_3 323
#define GLFW_KEY_KP_4 324
#define GLFW_KEY_KP_5 325
#define GLFW_KEY_KP_6 326
#define GLFW_KEY_KP_7 327
#define GLFW_KEY_KP_8 328
#define GLFW_KEY_KP_9 329
#define GLFW_KEY_KP_DECIMAL 330
#define GLFW_KEY_KP_DIVIDE 331
#define GLFW_KEY_KP_MULTIPLY 332
#define GLFW_KEY_KP_SUBTRACT 333
#define GLFW_KEY_KP_ADD 334
#define GLFW_KEY_KP_ENTER 335
#define GLFW_KEY_KP_EQUAL 336
#define GLFW_KEY_LEFT_SHIFT 340
#define GLFW_KEY_LEFT_CONTROL 341
#define GLFW_KEY_LEFT_ALT 342
#define GLFW_KEY_LEFT_SUPER 343
#define GLFW_KEY_RIGHT_SHIFT 344
#define GLFW_KEY_RIGHT_CONTROL 345
#define GLFW_KEY_RIGHT_ALT 346
#define GLFW_KEY_RIGHT_SUPER 347
#define GLFW_KEY_MENU 348
#define GLFW_KEY_LAST GLFW_KEY_MENU
/*! @} */ /*! @} */
/*! @defgroup mods Modifier key flags /*! @defgroup mods Modifier key flags
@ -4391,108 +4196,19 @@ GLFWAPI int glfwRawMouseMotionSupported(void);
* __Do not use this function__ for [text input](@ref input_char). You will * __Do not use this function__ for [text input](@ref input_char). You will
* break text input for many languages even if it happens to work for yours. * break text input for many languages even if it happens to work for yours.
* *
* If the key is `GLFW_KEY_UNKNOWN`, the keycode is used to identify the key, * If the key is `0`, the keycode is used to identify the key,
* otherwise the keycode is ignored. If you specify a non-printable key, or * otherwise the keycode is ignored. If you specify a non-printable key, or
* `GLFW_KEY_UNKNOWN` and a keycode that maps to a non-printable key, this * `0` and a keycode that maps to a non-printable key, this
* function returns `NULL` but does not emit an error. * function returns `NULL` but does not emit an error.
* *
* This behavior allows you to always pass in the arguments in the * This behavior allows you to always pass in the arguments in the
* [key callback](@ref input_key) without modification. * [key callback](@ref input_key) without modification.
* *
* The printable keys are:
* - `GLFW_KEY_SPACE`
* - `GLFW_KEY_EXCLAM`
* - `GLFW_KEY_DOUBLE_QUOTE`
* - `GLFW_KEY_NUMBER_SIGN`
* - `GLFW_KEY_DOLLAR`
* - `GLFW_KEY_AMPERSAND`
* - `GLFW_KEY_APOSTROPHE`
* - `GLFW_KEY_PARENTHESIS_LEFT`
* - `GLFW_KEY_PARENTHESIS_RIGHT`
* - `GLFW_KEY_PLUS`
* - `GLFW_KEY_COMMA`
* - `GLFW_KEY_MINUS`
* - `GLFW_KEY_PERIOD`
* - `GLFW_KEY_SLASH`
* - `GLFW_KEY_0` to `GLFW_KEY_9`
* - `GLFW_KEY_COLON`
* - `GLFW_KEY_SEMICOLON`
* - `GLFW_KEY_LESS`
* - `GLFW_KEY_EQUAL`
* - `GLFW_KEY_GREATER`
* - `GLFW_KEY_AT`
* - `GLFW_KEY_A` to `GLFW_KEY_Z`
* - `GLFW_KEY_LEFT_BRACKET`
* - `GLFW_KEY_BACKSLASH`
* - `GLFW_KEY_RIGHT_BRACKET`
* - `GLFW_KEY_CIRCUMFLEX`
* - `GLFW_KEY_UNDERSCORE`
* - `GLFW_KEY_GRAVE_ACCENT`
* - `GLFW_KEY_WORLD_1`
* - `GLFW_KEY_WORLD_2`
* - `GLFW_KEY_PARAGRAPH`
* - `GLFW_KEY_MASCULINE`
* - `GLFW_KEY_A_GRAVE`
* - `GLFW_KEY_A_DIAERESIS`
* - `GLFW_KEY_A_RING`
* - `GLFW_KEY_AE`
* - `GLFW_KEY_C_CEDILLA`
* - `GLFW_KEY_E_GRAVE`
* - `GLFW_KEY_E_ACUTE`
* - `GLFW_KEY_I_GRAVE`
* - `GLFW_KEY_N_TILDE`
* - `GLFW_KEY_O_GRAVE`
* - `GLFW_KEY_O_DIAERESIS`
* - `GLFW_KEY_O_SLASH`
* - `GLFW_KEY_U_GRAVE`
* - `GLFW_KEY_U_DIAERESIS`
* - `GLFW_KEY_S_SHARP`
* - `GLFW_KEY_CYRILLIC_A`
* - `GLFW_KEY_CYRILLIC_BE`
* - `GLFW_KEY_CYRILLIC_VE`
* - `GLFW_KEY_CYRILLIC_GHE`
* - `GLFW_KEY_CYRILLIC_DE`
* - `GLFW_KEY_CYRILLIC_IE`
* - `GLFW_KEY_CYRILLIC_ZHE`
* - `GLFW_KEY_CYRILLIC_ZE`
* - `GLFW_KEY_CYRILLIC_I`
* - `GLFW_KEY_CYRILLIC_SHORT_I`
* - `GLFW_KEY_CYRILLIC_KA`
* - `GLFW_KEY_CYRILLIC_EL`
* - `GLFW_KEY_CYRILLIC_EM`
* - `GLFW_KEY_CYRILLIC_EN`
* - `GLFW_KEY_CYRILLIC_O`
* - `GLFW_KEY_CYRILLIC_PE`
* - `GLFW_KEY_CYRILLIC_ER`
* - `GLFW_KEY_CYRILLIC_ES`
* - `GLFW_KEY_CYRILLIC_TE`
* - `GLFW_KEY_CYRILLIC_U`
* - `GLFW_KEY_CYRILLIC_EF`
* - `GLFW_KEY_CYRILLIC_HA`
* - `GLFW_KEY_CYRILLIC_TSE`
* - `GLFW_KEY_CYRILLIC_CHE`
* - `GLFW_KEY_CYRILLIC_SHA`
* - `GLFW_KEY_CYRILLIC_SHCHA`
* - `GLFW_KEY_CYRILLIC_HARD_SIGN`
* - `GLFW_KEY_CYRILLIC_YERU`
* - `GLFW_KEY_CYRILLIC_SOFT_SIGN`
* - `GLFW_KEY_CYRILLIC_E`
* - `GLFW_KEY_CYRILLIC_YU`
* - `GLFW_KEY_CYRILLIC_YA`
* - `GLFW_KEY_CYRILLIC_IO`
* - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9`
* - `GLFW_KEY_KP_DECIMAL`
* - `GLFW_KEY_KP_DIVIDE`
* - `GLFW_KEY_KP_MULTIPLY`
* - `GLFW_KEY_KP_SUBTRACT`
* - `GLFW_KEY_KP_ADD`
* - `GLFW_KEY_KP_EQUAL`
*
* Names for printable keys depend on keyboard layout, while names for * Names for printable keys depend on keyboard layout, while names for
* non-printable keys are the same across layouts but depend on the application * non-printable keys are the same across layouts but depend on the application
* language and should be localized along with other user interface text. * language and should be localized along with other user interface text.
* *
* @param[in] key The key to query, or `GLFW_KEY_UNKNOWN`. * @param[in] key The key to query, or `0`.
* @param[in] native_key The platform-specifc identifier of the key to query. * @param[in] native_key The platform-specifc identifier of the key to query.
* @return The UTF-8 encoded, layout-specific name of the key, or `NULL`. * @return The UTF-8 encoded, layout-specific name of the key, or `NULL`.
* *
@ -4519,7 +4235,7 @@ GLFWAPI const char* glfwGetKeyName(uint32_t key, int native_key);
* *
* This function returns the platform-specific identifier of the specified key. * This function returns the platform-specific identifier of the specified key.
* *
* If the key is `GLFW_KEY_UNKNOWN` or does not exist on the keyboard this * If the key is `0` or does not exist on the keyboard this
* method will return `-1`. * method will return `-1`.
* *
* @param[in] key Any [named key](@ref keys). * @param[in] key Any [named key](@ref keys).
@ -4561,7 +4277,7 @@ GLFWAPI int glfwGetNativeKeyForKey(uint32_t key);
* __Do not use this function__ to implement [text input](@ref input_char). * __Do not use this function__ to implement [text input](@ref input_char).
* *
* @param[in] window The desired window. * @param[in] window The desired window.
* @param[in] key The desired [keyboard key](@ref keys). `GLFW_KEY_UNKNOWN` is * @param[in] key The desired [keyboard key](@ref keys). `0` is
* not a valid key for this function. * not a valid key for this function.
* @return One of `GLFW_PRESS` or `GLFW_RELEASE`. * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
* *

2
glfw/ibus_glfw.c vendored
View File

@ -111,7 +111,7 @@ send_text(const char *text, int ime_state) {
_GLFWwindow *w = _glfwFocusedWindow(); _GLFWwindow *w = _glfwFocusedWindow();
if (w && w->callbacks.keyboard) { if (w && w->callbacks.keyboard) {
GLFWkeyevent fake_ev; GLFWkeyevent fake_ev;
_glfwInitializeKeyEvent(&fake_ev, GLFW_KEY_UNKNOWN, 0, GLFW_PRESS, 0); _glfwInitializeKeyEvent(&fake_ev, 0, 0, GLFW_PRESS, 0);
fake_ev.text = text; fake_ev.text = text;
fake_ev.ime_state = ime_state; fake_ev.ime_state = ime_state;
w->callbacks.keyboard((GLFWwindow*) w, &fake_ev); w->callbacks.keyboard((GLFWwindow*) w, &fake_ev);

332
glfw/input.c vendored
View File

@ -500,200 +500,148 @@ void _glfwFreeJoystick(_GLFWjoystick* js)
memset(js, 0, sizeof(_GLFWjoystick)); memset(js, 0, sizeof(_GLFWjoystick));
} }
unsigned int
encode_utf8(uint32_t ch, char* dest) {
if (ch < 0x80) {
dest[0] = (char)ch;
return 1;
}
if (ch < 0x800) {
dest[0] = (ch>>6) | 0xC0;
dest[1] = (ch & 0x3F) | 0x80;
return 2;
}
if (ch < 0x10000) {
dest[0] = (ch>>12) | 0xE0;
dest[1] = ((ch>>6) & 0x3F) | 0x80;
dest[2] = (ch & 0x3F) | 0x80;
return 3;
}
if (ch < 0x110000) {
dest[0] = (ch>>18) | 0xF0;
dest[1] = ((ch>>12) & 0x3F) | 0x80;
dest[2] = ((ch>>6) & 0x3F) | 0x80;
dest[3] = (ch & 0x3F) | 0x80;
return 4;
}
return 0;
}
const char* _glfwGetKeyName(int key) const char* _glfwGetKeyName(int key)
{ {
switch (key) switch (key)
{ {
// Printable keys /* start functional key names (auto generated by gen-key-constants.py do not edit) */
case GLFW_KEY_SPACE: return "SPACE"; case GLFW_FKEY_ESCAPE: return "ESCAPE";
case GLFW_KEY_EXCLAM: return "EXCLAM"; case GLFW_FKEY_ENTER: return "ENTER";
case GLFW_KEY_DOUBLE_QUOTE: return "DOUBLE_QUOTE"; case GLFW_FKEY_TAB: return "TAB";
case GLFW_KEY_NUMBER_SIGN: return "NUMBER_SIGN"; case GLFW_FKEY_BACKSPACE: return "BACKSPACE";
case GLFW_KEY_DOLLAR: return "DOLLAR"; case GLFW_FKEY_INSERT: return "INSERT";
case GLFW_KEY_AMPERSAND: return "AMPERSAND"; case GLFW_FKEY_DELETE: return "DELETE";
case GLFW_KEY_APOSTROPHE: return "APOSTROPHE"; case GLFW_FKEY_LEFT: return "LEFT";
case GLFW_KEY_PARENTHESIS_LEFT: return "PARENTHESIS_LEFT"; case GLFW_FKEY_RIGHT: return "RIGHT";
case GLFW_KEY_PARENTHESIS_RIGHT: return "PARENTHESIS_RIGHT"; case GLFW_FKEY_UP: return "UP";
case GLFW_KEY_PLUS: return "PLUS"; case GLFW_FKEY_DOWN: return "DOWN";
case GLFW_KEY_COMMA: return "COMMA"; case GLFW_FKEY_PAGE_UP: return "PAGE_UP";
case GLFW_KEY_MINUS: return "MINUS"; case GLFW_FKEY_PAGE_DOWN: return "PAGE_DOWN";
case GLFW_KEY_PERIOD: return "PERIOD"; case GLFW_FKEY_HOME: return "HOME";
case GLFW_KEY_SLASH: return "SLASH"; case GLFW_FKEY_END: return "END";
case GLFW_KEY_0: return "0"; case GLFW_FKEY_CAPS_LOCK: return "CAPS_LOCK";
case GLFW_KEY_1: return "1"; case GLFW_FKEY_SCROLL_LOCK: return "SCROLL_LOCK";
case GLFW_KEY_2: return "2"; case GLFW_FKEY_NUM_LOCK: return "NUM_LOCK";
case GLFW_KEY_3: return "3"; case GLFW_FKEY_PRINT_SCREEN: return "PRINT_SCREEN";
case GLFW_KEY_4: return "4"; case GLFW_FKEY_PAUSE: return "PAUSE";
case GLFW_KEY_5: return "5"; case GLFW_FKEY_MENU: return "MENU";
case GLFW_KEY_6: return "6"; case GLFW_FKEY_F1: return "F1";
case GLFW_KEY_7: return "7"; case GLFW_FKEY_F2: return "F2";
case GLFW_KEY_8: return "8"; case GLFW_FKEY_F3: return "F3";
case GLFW_KEY_9: return "9"; case GLFW_FKEY_F4: return "F4";
case GLFW_KEY_COLON: return "COLON"; case GLFW_FKEY_F5: return "F5";
case GLFW_KEY_SEMICOLON: return "SEMICOLON"; case GLFW_FKEY_F6: return "F6";
case GLFW_KEY_LESS: return "LESS"; case GLFW_FKEY_F7: return "F7";
case GLFW_KEY_EQUAL: return "EQUAL"; case GLFW_FKEY_F8: return "F8";
case GLFW_KEY_GREATER: return "GREATER"; case GLFW_FKEY_F9: return "F9";
case GLFW_KEY_AT: return "AT"; case GLFW_FKEY_F10: return "F10";
case GLFW_KEY_A: return "A"; case GLFW_FKEY_F11: return "F11";
case GLFW_KEY_B: return "B"; case GLFW_FKEY_F12: return "F12";
case GLFW_KEY_C: return "C"; case GLFW_FKEY_F13: return "F13";
case GLFW_KEY_D: return "D"; case GLFW_FKEY_F14: return "F14";
case GLFW_KEY_E: return "E"; case GLFW_FKEY_F15: return "F15";
case GLFW_KEY_F: return "F"; case GLFW_FKEY_F16: return "F16";
case GLFW_KEY_G: return "G"; case GLFW_FKEY_F17: return "F17";
case GLFW_KEY_H: return "H"; case GLFW_FKEY_F18: return "F18";
case GLFW_KEY_I: return "I"; case GLFW_FKEY_F19: return "F19";
case GLFW_KEY_J: return "J"; case GLFW_FKEY_F20: return "F20";
case GLFW_KEY_K: return "K"; case GLFW_FKEY_F21: return "F21";
case GLFW_KEY_L: return "L"; case GLFW_FKEY_F22: return "F22";
case GLFW_KEY_M: return "M"; case GLFW_FKEY_F23: return "F23";
case GLFW_KEY_N: return "N"; case GLFW_FKEY_F24: return "F24";
case GLFW_KEY_O: return "O"; case GLFW_FKEY_F25: return "F25";
case GLFW_KEY_P: return "P"; case GLFW_FKEY_F26: return "F26";
case GLFW_KEY_Q: return "Q"; case GLFW_FKEY_F27: return "F27";
case GLFW_KEY_R: return "R"; case GLFW_FKEY_F28: return "F28";
case GLFW_KEY_S: return "S"; case GLFW_FKEY_F29: return "F29";
case GLFW_KEY_T: return "T"; case GLFW_FKEY_F30: return "F30";
case GLFW_KEY_U: return "U"; case GLFW_FKEY_F31: return "F31";
case GLFW_KEY_V: return "V"; case GLFW_FKEY_F32: return "F32";
case GLFW_KEY_W: return "W"; case GLFW_FKEY_F33: return "F33";
case GLFW_KEY_X: return "X"; case GLFW_FKEY_F34: return "F34";
case GLFW_KEY_Y: return "Y"; case GLFW_FKEY_F35: return "F35";
case GLFW_KEY_Z: return "Z"; case GLFW_FKEY_KP_0: return "KP_0";
case GLFW_KEY_LEFT_BRACKET: return "LEFT_BRACKET"; case GLFW_FKEY_KP_1: return "KP_1";
case GLFW_KEY_BACKSLASH: return "BACKSLASH"; case GLFW_FKEY_KP_2: return "KP_2";
case GLFW_KEY_RIGHT_BRACKET: return "RIGHT_BRACKET"; case GLFW_FKEY_KP_3: return "KP_3";
case GLFW_KEY_CIRCUMFLEX: return "CIRCUMFLEX"; case GLFW_FKEY_KP_4: return "KP_4";
case GLFW_KEY_UNDERSCORE: return "UNDERSCORE"; case GLFW_FKEY_KP_5: return "KP_5";
case GLFW_KEY_GRAVE_ACCENT: return "GRAVE_ACCENT"; case GLFW_FKEY_KP_6: return "KP_6";
case GLFW_KEY_WORLD_1: return "WORLD_1"; case GLFW_FKEY_KP_7: return "KP_7";
case GLFW_KEY_WORLD_2: return "WORLD_2"; case GLFW_FKEY_KP_8: return "KP_8";
case GLFW_KEY_PARAGRAPH: return "PARAGRAPH"; case GLFW_FKEY_KP_9: return "KP_9";
case GLFW_KEY_MASCULINE: return "MASCULINE"; case GLFW_FKEY_KP_DECIMAL: return "KP_DECIMAL";
case GLFW_KEY_A_GRAVE: return "A_GRAVE"; case GLFW_FKEY_KP_DIVIDE: return "KP_DIVIDE";
case GLFW_KEY_A_DIAERESIS: return "A_DIAERESIS"; case GLFW_FKEY_KP_MULTIPLY: return "KP_MULTIPLY";
case GLFW_KEY_A_RING: return "A_RING"; case GLFW_FKEY_KP_SUBTRACT: return "KP_SUBTRACT";
case GLFW_KEY_AE: return "AE"; case GLFW_FKEY_KP_ADD: return "KP_ADD";
case GLFW_KEY_C_CEDILLA: return "C_CEDILLA"; case GLFW_FKEY_KP_ENTER: return "KP_ENTER";
case GLFW_KEY_E_GRAVE: return "E_GRAVE"; case GLFW_FKEY_KP_EQUAL: return "KP_EQUAL";
case GLFW_KEY_E_ACUTE: return "E_ACUTE"; case GLFW_FKEY_KP_SEPARATOR: return "KP_SEPARATOR";
case GLFW_KEY_I_GRAVE: return "I_GRAVE"; case GLFW_FKEY_KP_LEFT: return "KP_LEFT";
case GLFW_KEY_N_TILDE: return "N_TILDE"; case GLFW_FKEY_KP_RIGHT: return "KP_RIGHT";
case GLFW_KEY_O_GRAVE: return "O_GRAVE"; case GLFW_FKEY_KP_UP: return "KP_UP";
case GLFW_KEY_O_DIAERESIS: return "O_DIAERESIS"; case GLFW_FKEY_KP_DOWN: return "KP_DOWN";
case GLFW_KEY_O_SLASH: return "O_SLASH"; case GLFW_FKEY_KP_PAGE_UP: return "KP_PAGE_UP";
case GLFW_KEY_U_GRAVE: return "U_GRAVE"; case GLFW_FKEY_KP_PAGE_DOWN: return "KP_PAGE_DOWN";
case GLFW_KEY_U_DIAERESIS: return "U_DIAERESIS"; case GLFW_FKEY_KP_HOME: return "KP_HOME";
case GLFW_KEY_S_SHARP: return "S_SHARP"; case GLFW_FKEY_KP_END: return "KP_END";
case GLFW_KEY_CYRILLIC_A: return "CYRILLIC_A"; case GLFW_FKEY_KP_INSERT: return "KP_INSERT";
case GLFW_KEY_CYRILLIC_BE: return "CYRILLIC_BE"; case GLFW_FKEY_KP_DELETE: return "KP_DELETE";
case GLFW_KEY_CYRILLIC_VE: return "CYRILLIC_VE"; case GLFW_FKEY_LEFT_SHIFT: return "LEFT_SHIFT";
case GLFW_KEY_CYRILLIC_GHE: return "CYRILLIC_GHE"; case GLFW_FKEY_LEFT_CONTROL: return "LEFT_CONTROL";
case GLFW_KEY_CYRILLIC_DE: return "CYRILLIC_DE"; case GLFW_FKEY_LEFT_ALT: return "LEFT_ALT";
case GLFW_KEY_CYRILLIC_IE: return "CYRILLIC_IE"; case GLFW_FKEY_LEFT_SUPER: return "LEFT_SUPER";
case GLFW_KEY_CYRILLIC_ZHE: return "CYRILLIC_ZHE"; case GLFW_FKEY_RIGHT_SHIFT: return "RIGHT_SHIFT";
case GLFW_KEY_CYRILLIC_ZE: return "CYRILLIC_ZE"; case GLFW_FKEY_RIGHT_CONTROL: return "RIGHT_CONTROL";
case GLFW_KEY_CYRILLIC_I: return "CYRILLIC_I"; case GLFW_FKEY_RIGHT_ALT: return "RIGHT_ALT";
case GLFW_KEY_CYRILLIC_SHORT_I: return "CYRILLIC_SHORT_I"; case GLFW_FKEY_RIGHT_SUPER: return "RIGHT_SUPER";
case GLFW_KEY_CYRILLIC_KA: return "CYRILLIC_KA"; case GLFW_FKEY_MEDIA_PLAY: return "MEDIA_PLAY";
case GLFW_KEY_CYRILLIC_EL: return "CYRILLIC_EL"; case GLFW_FKEY_MEDIA_PAUSE: return "MEDIA_PAUSE";
case GLFW_KEY_CYRILLIC_EM: return "CYRILLIC_EM"; case GLFW_FKEY_MEDIA_PLAY_PAUSE: return "MEDIA_PLAY_PAUSE";
case GLFW_KEY_CYRILLIC_EN: return "CYRILLIC_EN"; case GLFW_FKEY_MEDIA_REVERSE: return "MEDIA_REVERSE";
case GLFW_KEY_CYRILLIC_O: return "CYRILLIC_O"; case GLFW_FKEY_MEDIA_STOP: return "MEDIA_STOP";
case GLFW_KEY_CYRILLIC_PE: return "CYRILLIC_PE"; case GLFW_FKEY_MEDIA_FAST_FORWARD: return "MEDIA_FAST_FORWARD";
case GLFW_KEY_CYRILLIC_ER: return "CYRILLIC_ER"; case GLFW_FKEY_MEDIA_REWIND: return "MEDIA_REWIND";
case GLFW_KEY_CYRILLIC_ES: return "CYRILLIC_ES"; case GLFW_FKEY_MEDIA_TRACK_NEXT: return "MEDIA_TRACK_NEXT";
case GLFW_KEY_CYRILLIC_TE: return "CYRILLIC_TE"; case GLFW_FKEY_MEDIA_TRACK_PREVIOUS: return "MEDIA_TRACK_PREVIOUS";
case GLFW_KEY_CYRILLIC_U: return "CYRILLIC_U"; case GLFW_FKEY_MEDIA_RECORD: return "MEDIA_RECORD";
case GLFW_KEY_CYRILLIC_EF: return "CYRILLIC_EF"; case GLFW_FKEY_LOWER_VOLUME: return "LOWER_VOLUME";
case GLFW_KEY_CYRILLIC_HA: return "CYRILLIC_HA"; case GLFW_FKEY_RAISE_VOLUME: return "RAISE_VOLUME";
case GLFW_KEY_CYRILLIC_TSE: return "CYRILLIC_TSE"; case GLFW_FKEY_MUTE_VOLUME: return "MUTE_VOLUME";
case GLFW_KEY_CYRILLIC_CHE: return "CYRILLIC_CHE"; /* end functional key names */
case GLFW_KEY_CYRILLIC_SHA: return "CYRILLIC_SHA"; case 0: return "UNKNOWN";
case GLFW_KEY_CYRILLIC_SHCHA: return "CYRILLIC_SHCHA";
case GLFW_KEY_CYRILLIC_HARD_SIGN: return "CYRILLIC_HARD_SIGN";
case GLFW_KEY_CYRILLIC_YERU: return "CYRILLIC_YERU";
case GLFW_KEY_CYRILLIC_SOFT_SIGN: return "CYRILLIC_SOFT_SIGN";
case GLFW_KEY_CYRILLIC_E: return "CYRILLIC_E";
case GLFW_KEY_CYRILLIC_YU: return "CYRILLIC_YU";
case GLFW_KEY_CYRILLIC_YA: return "CYRILLIC_YA";
case GLFW_KEY_CYRILLIC_IO: return "CYRILLIC_IO";
// Function keys
case GLFW_KEY_ESCAPE: return "ESCAPE";
case GLFW_KEY_F1: return "F1";
case GLFW_KEY_F2: return "F2";
case GLFW_KEY_F3: return "F3";
case GLFW_KEY_F4: return "F4";
case GLFW_KEY_F5: return "F5";
case GLFW_KEY_F6: return "F6";
case GLFW_KEY_F7: return "F7";
case GLFW_KEY_F8: return "F8";
case GLFW_KEY_F9: return "F9";
case GLFW_KEY_F10: return "F10";
case GLFW_KEY_F11: return "F11";
case GLFW_KEY_F12: return "F12";
case GLFW_KEY_F13: return "F13";
case GLFW_KEY_F14: return "F14";
case GLFW_KEY_F15: return "F15";
case GLFW_KEY_F16: return "F16";
case GLFW_KEY_F17: return "F17";
case GLFW_KEY_F18: return "F18";
case GLFW_KEY_F19: return "F19";
case GLFW_KEY_F20: return "F20";
case GLFW_KEY_F21: return "F21";
case GLFW_KEY_F22: return "F22";
case GLFW_KEY_F23: return "F23";
case GLFW_KEY_F24: return "F24";
case GLFW_KEY_F25: return "F25";
case GLFW_KEY_UP: return "UP";
case GLFW_KEY_DOWN: return "DOWN";
case GLFW_KEY_LEFT: return "LEFT";
case GLFW_KEY_RIGHT: return "RIGHT";
case GLFW_KEY_LEFT_SHIFT: return "LEFT SHIFT";
case GLFW_KEY_RIGHT_SHIFT: return "RIGHT SHIFT";
case GLFW_KEY_LEFT_CONTROL: return "LEFT CONTROL";
case GLFW_KEY_RIGHT_CONTROL: return "RIGHT CONTROL";
case GLFW_KEY_LEFT_ALT: return "LEFT ALT";
case GLFW_KEY_RIGHT_ALT: return "RIGHT ALT";
case GLFW_KEY_TAB: return "TAB";
case GLFW_KEY_ENTER: return "ENTER";
case GLFW_KEY_BACKSPACE: return "BACKSPACE";
case GLFW_KEY_INSERT: return "INSERT";
case GLFW_KEY_DELETE: return "DELETE";
case GLFW_KEY_PAGE_UP: return "PAGE UP";
case GLFW_KEY_PAGE_DOWN: return "PAGE DOWN";
case GLFW_KEY_HOME: return "HOME";
case GLFW_KEY_END: return "END";
case GLFW_KEY_KP_0: return "KEYPAD 0";
case GLFW_KEY_KP_1: return "KEYPAD 1";
case GLFW_KEY_KP_2: return "KEYPAD 2";
case GLFW_KEY_KP_3: return "KEYPAD 3";
case GLFW_KEY_KP_4: return "KEYPAD 4";
case GLFW_KEY_KP_5: return "KEYPAD 5";
case GLFW_KEY_KP_6: return "KEYPAD 6";
case GLFW_KEY_KP_7: return "KEYPAD 7";
case GLFW_KEY_KP_8: return "KEYPAD 8";
case GLFW_KEY_KP_9: return "KEYPAD 9";
case GLFW_KEY_KP_DIVIDE: return "KEYPAD DIVIDE";
case GLFW_KEY_KP_MULTIPLY: return "KEYPAD MULTIPLY";
case GLFW_KEY_KP_SUBTRACT: return "KEYPAD SUBTRACT";
case GLFW_KEY_KP_ADD: return "KEYPAD ADD";
case GLFW_KEY_KP_DECIMAL: return "KEYPAD DECIMAL";
case GLFW_KEY_KP_EQUAL: return "KEYPAD EQUAL";
case GLFW_KEY_KP_ENTER: return "KEYPAD ENTER";
case GLFW_KEY_PRINT_SCREEN: return "PRINT SCREEN";
case GLFW_KEY_NUM_LOCK: return "NUM LOCK";
case GLFW_KEY_CAPS_LOCK: return "CAPS LOCK";
case GLFW_KEY_SCROLL_LOCK: return "SCROLL LOCK";
case GLFW_KEY_PAUSE: return "PAUSE";
case GLFW_KEY_LEFT_SUPER: return "LEFT SUPER";
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
case GLFW_KEY_MENU: return "MENU";
default: return "UNKNOWN";
} }
static char buf[16];
encode_utf8(key, buf);
return buf;
} }
// Center the cursor in the content area of the specified window // Center the cursor in the content area of the specified window
@ -849,12 +797,6 @@ GLFWAPI int glfwGetNativeKeyForKey(uint32_t key)
{ {
_GLFW_REQUIRE_INIT_OR_RETURN(-1); _GLFW_REQUIRE_INIT_OR_RETURN(-1);
if (key < GLFW_KEY_SPACE || key > GLFW_KEY_LAST)
{
_glfwInputError(GLFW_INVALID_ENUM, "Invalid key %i", key);
return GLFW_RELEASE;
}
return _glfwPlatformGetNativeKeyForKey(key); return _glfwPlatformGetNativeKeyForKey(key);
} }

6
glfw/xkb_glfw.c vendored
View File

@ -558,7 +558,7 @@ glfw_xkb_key_from_ime(_GLFWIBUSKeyEvent *ev, bool handled_by_ime, bool failed) {
if (failed && window && window->callbacks.keyboard) { if (failed && window && window->callbacks.keyboard) {
// notify application to remove any existing pre-edit text // notify application to remove any existing pre-edit text
GLFWkeyevent fake_ev; GLFWkeyevent fake_ev;
_glfwInitializeKeyEvent(&fake_ev, GLFW_KEY_UNKNOWN, 0, GLFW_PRESS, 0); _glfwInitializeKeyEvent(&fake_ev, 0, 0, GLFW_PRESS, 0);
fake_ev.ime_state = 1; fake_ev.ime_state = 1;
window->callbacks.keyboard((GLFWwindow*) window, &fake_ev); window->callbacks.keyboard((GLFWwindow*) window, &fake_ev);
} }
@ -592,7 +592,7 @@ glfw_xkb_handle_key_event(_GLFWwindow *window, _GLFWXKBData *xkb, xkb_keycode_t
xkb_keysym_t xkb_sym; xkb_keysym_t xkb_sym;
xkb_keycode_t code_for_sym = xkb_keycode, ibus_keycode = xkb_keycode; xkb_keycode_t code_for_sym = xkb_keycode, ibus_keycode = xkb_keycode;
GLFWkeyevent glfw_ev; GLFWkeyevent glfw_ev;
_glfwInitializeKeyEvent(&glfw_ev, GLFW_KEY_UNKNOWN, 0, GLFW_PRESS, 0); // init with default values _glfwInitializeKeyEvent(&glfw_ev, 0, 0, GLFW_PRESS, 0); // init with default values
#ifdef _GLFW_WAYLAND #ifdef _GLFW_WAYLAND
code_for_sym += 8; code_for_sym += 8;
#else #else
@ -645,7 +645,7 @@ glfw_xkb_handle_key_event(_GLFWwindow *window, _GLFWXKBData *xkb, xkb_keycode_t
} }
int glfw_sym = glfw_key_for_sym(xkb_sym); int glfw_sym = glfw_key_for_sym(xkb_sym);
bool is_fallback = false; bool is_fallback = false;
if (glfw_sym == GLFW_KEY_UNKNOWN && !key_text[0]) { if (glfw_sym == 0 && !key_text[0]) {
int num_default_syms = xkb_state_key_get_syms(sg->default_state, code_for_sym, &default_syms); int num_default_syms = xkb_state_key_get_syms(sg->default_state, code_for_sym, &default_syms);
if (num_default_syms > 0) { if (num_default_syms > 0) {
xkb_sym = default_syms[0]; xkb_sym = default_syms[0];

View File

@ -17,193 +17,112 @@ CLOSE_BEING_CONFIRMED: int
ERROR_PREFIX: str ERROR_PREFIX: str
GLSL_VERSION: int GLSL_VERSION: int
GLFW_IBEAM_CURSOR: int GLFW_IBEAM_CURSOR: int
GLFW_KEY_UNKNOWN: int # start glfw functional keys (auto generated by gen-key-constants.py do not edit)
GLFW_KEY_SPACE: int ADDC(GLFW_FKEY_ESCAPE);
GLFW_KEY_EXCLAM: int ADDC(GLFW_FKEY_ENTER);
GLFW_KEY_DOUBLE_QUOTE: int ADDC(GLFW_FKEY_TAB);
GLFW_KEY_NUMBER_SIGN: int ADDC(GLFW_FKEY_BACKSPACE);
GLFW_KEY_DOLLAR: int ADDC(GLFW_FKEY_INSERT);
GLFW_KEY_AMPERSAND: int ADDC(GLFW_FKEY_DELETE);
GLFW_KEY_APOSTROPHE: int ADDC(GLFW_FKEY_LEFT);
GLFW_KEY_PARENTHESIS_LEFT: int ADDC(GLFW_FKEY_RIGHT);
GLFW_KEY_PARENTHESIS_RIGHT: int ADDC(GLFW_FKEY_UP);
GLFW_KEY_PLUS: int ADDC(GLFW_FKEY_DOWN);
GLFW_KEY_COMMA: int ADDC(GLFW_FKEY_PAGE_UP);
GLFW_KEY_MINUS: int ADDC(GLFW_FKEY_PAGE_DOWN);
GLFW_KEY_PERIOD: int ADDC(GLFW_FKEY_HOME);
GLFW_KEY_SLASH: int ADDC(GLFW_FKEY_END);
GLFW_KEY_0: int ADDC(GLFW_FKEY_CAPS_LOCK);
GLFW_KEY_1: int ADDC(GLFW_FKEY_SCROLL_LOCK);
GLFW_KEY_2: int ADDC(GLFW_FKEY_NUM_LOCK);
GLFW_KEY_3: int ADDC(GLFW_FKEY_PRINT_SCREEN);
GLFW_KEY_4: int ADDC(GLFW_FKEY_PAUSE);
GLFW_KEY_5: int ADDC(GLFW_FKEY_MENU);
GLFW_KEY_6: int ADDC(GLFW_FKEY_F1);
GLFW_KEY_7: int ADDC(GLFW_FKEY_F2);
GLFW_KEY_8: int ADDC(GLFW_FKEY_F3);
GLFW_KEY_9: int ADDC(GLFW_FKEY_F4);
GLFW_KEY_COLON: int ADDC(GLFW_FKEY_F5);
GLFW_KEY_SEMICOLON: int ADDC(GLFW_FKEY_F6);
GLFW_KEY_LESS: int ADDC(GLFW_FKEY_F7);
GLFW_KEY_EQUAL: int ADDC(GLFW_FKEY_F8);
GLFW_KEY_GREATER: int ADDC(GLFW_FKEY_F9);
GLFW_KEY_AT: int ADDC(GLFW_FKEY_F10);
GLFW_KEY_A: int ADDC(GLFW_FKEY_F11);
GLFW_KEY_B: int ADDC(GLFW_FKEY_F12);
GLFW_KEY_C: int ADDC(GLFW_FKEY_F13);
GLFW_KEY_D: int ADDC(GLFW_FKEY_F14);
GLFW_KEY_E: int ADDC(GLFW_FKEY_F15);
GLFW_KEY_F: int ADDC(GLFW_FKEY_F16);
GLFW_KEY_G: int ADDC(GLFW_FKEY_F17);
GLFW_KEY_H: int ADDC(GLFW_FKEY_F18);
GLFW_KEY_I: int ADDC(GLFW_FKEY_F19);
GLFW_KEY_J: int ADDC(GLFW_FKEY_F20);
GLFW_KEY_K: int ADDC(GLFW_FKEY_F21);
GLFW_KEY_L: int ADDC(GLFW_FKEY_F22);
GLFW_KEY_M: int ADDC(GLFW_FKEY_F23);
GLFW_KEY_N: int ADDC(GLFW_FKEY_F24);
GLFW_KEY_O: int ADDC(GLFW_FKEY_F25);
GLFW_KEY_P: int ADDC(GLFW_FKEY_F26);
GLFW_KEY_Q: int ADDC(GLFW_FKEY_F27);
GLFW_KEY_R: int ADDC(GLFW_FKEY_F28);
GLFW_KEY_S: int ADDC(GLFW_FKEY_F29);
GLFW_KEY_T: int ADDC(GLFW_FKEY_F30);
GLFW_KEY_U: int ADDC(GLFW_FKEY_F31);
GLFW_KEY_V: int ADDC(GLFW_FKEY_F32);
GLFW_KEY_W: int ADDC(GLFW_FKEY_F33);
GLFW_KEY_X: int ADDC(GLFW_FKEY_F34);
GLFW_KEY_Y: int ADDC(GLFW_FKEY_F35);
GLFW_KEY_Z: int ADDC(GLFW_FKEY_KP_0);
GLFW_KEY_LEFT_BRACKET: int ADDC(GLFW_FKEY_KP_1);
GLFW_KEY_BACKSLASH: int ADDC(GLFW_FKEY_KP_2);
GLFW_KEY_RIGHT_BRACKET: int ADDC(GLFW_FKEY_KP_3);
GLFW_KEY_CIRCUMFLEX: int ADDC(GLFW_FKEY_KP_4);
GLFW_KEY_UNDERSCORE: int ADDC(GLFW_FKEY_KP_5);
GLFW_KEY_GRAVE_ACCENT: int ADDC(GLFW_FKEY_KP_6);
GLFW_KEY_WORLD_1: int ADDC(GLFW_FKEY_KP_7);
GLFW_KEY_WORLD_2: int ADDC(GLFW_FKEY_KP_8);
GLFW_KEY_PARAGRAPH: int ADDC(GLFW_FKEY_KP_9);
GLFW_KEY_MASCULINE: int ADDC(GLFW_FKEY_KP_DECIMAL);
GLFW_KEY_A_GRAVE: int ADDC(GLFW_FKEY_KP_DIVIDE);
GLFW_KEY_A_DIAERESIS: int ADDC(GLFW_FKEY_KP_MULTIPLY);
GLFW_KEY_A_RING: int ADDC(GLFW_FKEY_KP_SUBTRACT);
GLFW_KEY_AE: int ADDC(GLFW_FKEY_KP_ADD);
GLFW_KEY_C_CEDILLA: int ADDC(GLFW_FKEY_KP_ENTER);
GLFW_KEY_E_GRAVE: int ADDC(GLFW_FKEY_KP_EQUAL);
GLFW_KEY_E_ACUTE: int ADDC(GLFW_FKEY_KP_SEPARATOR);
GLFW_KEY_I_GRAVE: int ADDC(GLFW_FKEY_KP_LEFT);
GLFW_KEY_N_TILDE: int ADDC(GLFW_FKEY_KP_RIGHT);
GLFW_KEY_O_GRAVE: int ADDC(GLFW_FKEY_KP_UP);
GLFW_KEY_O_DIAERESIS: int ADDC(GLFW_FKEY_KP_DOWN);
GLFW_KEY_O_SLASH: int ADDC(GLFW_FKEY_KP_PAGE_UP);
GLFW_KEY_U_GRAVE: int ADDC(GLFW_FKEY_KP_PAGE_DOWN);
GLFW_KEY_U_DIAERESIS: int ADDC(GLFW_FKEY_KP_HOME);
GLFW_KEY_S_SHARP: int ADDC(GLFW_FKEY_KP_END);
GLFW_KEY_CYRILLIC_A: int ADDC(GLFW_FKEY_KP_INSERT);
GLFW_KEY_CYRILLIC_BE: int ADDC(GLFW_FKEY_KP_DELETE);
GLFW_KEY_CYRILLIC_VE: int ADDC(GLFW_FKEY_LEFT_SHIFT);
GLFW_KEY_CYRILLIC_GHE: int ADDC(GLFW_FKEY_LEFT_CONTROL);
GLFW_KEY_CYRILLIC_DE: int ADDC(GLFW_FKEY_LEFT_ALT);
GLFW_KEY_CYRILLIC_IE: int ADDC(GLFW_FKEY_LEFT_SUPER);
GLFW_KEY_CYRILLIC_ZHE: int ADDC(GLFW_FKEY_RIGHT_SHIFT);
GLFW_KEY_CYRILLIC_ZE: int ADDC(GLFW_FKEY_RIGHT_CONTROL);
GLFW_KEY_CYRILLIC_I: int ADDC(GLFW_FKEY_RIGHT_ALT);
GLFW_KEY_CYRILLIC_SHORT_I: int ADDC(GLFW_FKEY_RIGHT_SUPER);
GLFW_KEY_CYRILLIC_KA: int ADDC(GLFW_FKEY_MEDIA_PLAY);
GLFW_KEY_CYRILLIC_EL: int ADDC(GLFW_FKEY_MEDIA_PAUSE);
GLFW_KEY_CYRILLIC_EM: int ADDC(GLFW_FKEY_MEDIA_PLAY_PAUSE);
GLFW_KEY_CYRILLIC_EN: int ADDC(GLFW_FKEY_MEDIA_REVERSE);
GLFW_KEY_CYRILLIC_O: int ADDC(GLFW_FKEY_MEDIA_STOP);
GLFW_KEY_CYRILLIC_PE: int ADDC(GLFW_FKEY_MEDIA_FAST_FORWARD);
GLFW_KEY_CYRILLIC_ER: int ADDC(GLFW_FKEY_MEDIA_REWIND);
GLFW_KEY_CYRILLIC_ES: int ADDC(GLFW_FKEY_MEDIA_TRACK_NEXT);
GLFW_KEY_CYRILLIC_TE: int ADDC(GLFW_FKEY_MEDIA_TRACK_PREVIOUS);
GLFW_KEY_CYRILLIC_U: int ADDC(GLFW_FKEY_MEDIA_RECORD);
GLFW_KEY_CYRILLIC_EF: int ADDC(GLFW_FKEY_LOWER_VOLUME);
GLFW_KEY_CYRILLIC_HA: int ADDC(GLFW_FKEY_RAISE_VOLUME);
GLFW_KEY_CYRILLIC_TSE: int ADDC(GLFW_FKEY_MUTE_VOLUME);
GLFW_KEY_CYRILLIC_CHE: int # end glfw functional keys
GLFW_KEY_CYRILLIC_SHA: int
GLFW_KEY_CYRILLIC_SHCHA: int
GLFW_KEY_CYRILLIC_HARD_SIGN: int
GLFW_KEY_CYRILLIC_YERU: int
GLFW_KEY_CYRILLIC_SOFT_SIGN: int
GLFW_KEY_CYRILLIC_E: int
GLFW_KEY_CYRILLIC_YU: int
GLFW_KEY_CYRILLIC_YA: int
GLFW_KEY_CYRILLIC_IO: int
GLFW_KEY_LAST_PRINTABLE: int
GLFW_KEY_ESCAPE: int
GLFW_KEY_ENTER: int
GLFW_KEY_TAB: int
GLFW_KEY_BACKSPACE: int
GLFW_KEY_INSERT: int
GLFW_KEY_DELETE: int
GLFW_KEY_RIGHT: int
GLFW_KEY_LEFT: int
GLFW_KEY_DOWN: int
GLFW_KEY_UP: int
GLFW_KEY_PAGE_UP: int
GLFW_KEY_PAGE_DOWN: int
GLFW_KEY_HOME: int
GLFW_KEY_END: int
GLFW_KEY_CAPS_LOCK: int
GLFW_KEY_SCROLL_LOCK: int
GLFW_KEY_NUM_LOCK: int
GLFW_KEY_PRINT_SCREEN: int
GLFW_KEY_PAUSE: int
GLFW_KEY_F1: int
GLFW_KEY_F2: int
GLFW_KEY_F3: int
GLFW_KEY_F4: int
GLFW_KEY_F5: int
GLFW_KEY_F6: int
GLFW_KEY_F7: int
GLFW_KEY_F8: int
GLFW_KEY_F9: int
GLFW_KEY_F10: int
GLFW_KEY_F11: int
GLFW_KEY_F12: int
GLFW_KEY_F13: int
GLFW_KEY_F14: int
GLFW_KEY_F15: int
GLFW_KEY_F16: int
GLFW_KEY_F17: int
GLFW_KEY_F18: int
GLFW_KEY_F19: int
GLFW_KEY_F20: int
GLFW_KEY_F21: int
GLFW_KEY_F22: int
GLFW_KEY_F23: int
GLFW_KEY_F24: int
GLFW_KEY_F25: int
GLFW_KEY_KP_0: int
GLFW_KEY_KP_1: int
GLFW_KEY_KP_2: int
GLFW_KEY_KP_3: int
GLFW_KEY_KP_4: int
GLFW_KEY_KP_5: int
GLFW_KEY_KP_6: int
GLFW_KEY_KP_7: int
GLFW_KEY_KP_8: int
GLFW_KEY_KP_9: int
GLFW_KEY_KP_DECIMAL: int
GLFW_KEY_KP_DIVIDE: int
GLFW_KEY_KP_MULTIPLY: int
GLFW_KEY_KP_SUBTRACT: int
GLFW_KEY_KP_ADD: int
GLFW_KEY_KP_ENTER: int
GLFW_KEY_KP_EQUAL: int
GLFW_KEY_LEFT_SHIFT: int
GLFW_KEY_LEFT_CONTROL: int
GLFW_KEY_LEFT_ALT: int
GLFW_KEY_LEFT_SUPER: int
GLFW_KEY_RIGHT_SHIFT: int
GLFW_KEY_RIGHT_CONTROL: int
GLFW_KEY_RIGHT_ALT: int
GLFW_KEY_RIGHT_SUPER: int
GLFW_KEY_MENU: int
GLFW_KEY_LAST: int
GLFW_MOD_SHIFT: int GLFW_MOD_SHIFT: int
GLFW_MOD_CONTROL: int GLFW_MOD_CONTROL: int
GLFW_MOD_ALT: int GLFW_MOD_ALT: int

407
kitty/glfw-wrapper.h generated
View File

@ -82,310 +82,115 @@
/* start functional key names (auto generated by gen-key-constants.py do not edit) */ /* start functional key names (auto generated by gen-key-constants.py do not edit) */
typedef enum { typedef enum {
GLFW_FKEY_FIRST = 0xe000, GLFW_FKEY_FIRST = 0xe000u,
GLFW_FKEY_ESCAPE = 0xe000, GLFW_FKEY_ESCAPE = 0xe000u,
GLFW_FKEY_ENTER = 0xe001, GLFW_FKEY_ENTER = 0xe001u,
GLFW_FKEY_TAB = 0xe002, GLFW_FKEY_TAB = 0xe002u,
GLFW_FKEY_BACKSPACE = 0xe003, GLFW_FKEY_BACKSPACE = 0xe003u,
GLFW_FKEY_INSERT = 0xe004, GLFW_FKEY_INSERT = 0xe004u,
GLFW_FKEY_DELETE = 0xe005, GLFW_FKEY_DELETE = 0xe005u,
GLFW_FKEY_LEFT = 0xe006, GLFW_FKEY_LEFT = 0xe006u,
GLFW_FKEY_RIGHT = 0xe007, GLFW_FKEY_RIGHT = 0xe007u,
GLFW_FKEY_UP = 0xe008, GLFW_FKEY_UP = 0xe008u,
GLFW_FKEY_DOWN = 0xe009, GLFW_FKEY_DOWN = 0xe009u,
GLFW_FKEY_PAGE_UP = 0xe00a, GLFW_FKEY_PAGE_UP = 0xe00au,
GLFW_FKEY_PAGE_DOWN = 0xe00b, GLFW_FKEY_PAGE_DOWN = 0xe00bu,
GLFW_FKEY_HOME = 0xe00c, GLFW_FKEY_HOME = 0xe00cu,
GLFW_FKEY_END = 0xe00d, GLFW_FKEY_END = 0xe00du,
GLFW_FKEY_CAPS_LOCK = 0xe00e, GLFW_FKEY_CAPS_LOCK = 0xe00eu,
GLFW_FKEY_SCROLL_LOCK = 0xe00f, GLFW_FKEY_SCROLL_LOCK = 0xe00fu,
GLFW_FKEY_NUM_LOCK = 0xe010, GLFW_FKEY_NUM_LOCK = 0xe010u,
GLFW_FKEY_PRINT_SCREEN = 0xe011, GLFW_FKEY_PRINT_SCREEN = 0xe011u,
GLFW_FKEY_PAUSE = 0xe012, GLFW_FKEY_PAUSE = 0xe012u,
GLFW_FKEY_MENU = 0xe013, GLFW_FKEY_MENU = 0xe013u,
GLFW_FKEY_F1 = 0xe014, GLFW_FKEY_F1 = 0xe014u,
GLFW_FKEY_F2 = 0xe015, GLFW_FKEY_F2 = 0xe015u,
GLFW_FKEY_F3 = 0xe016, GLFW_FKEY_F3 = 0xe016u,
GLFW_FKEY_F4 = 0xe017, GLFW_FKEY_F4 = 0xe017u,
GLFW_FKEY_F5 = 0xe018, GLFW_FKEY_F5 = 0xe018u,
GLFW_FKEY_F6 = 0xe019, GLFW_FKEY_F6 = 0xe019u,
GLFW_FKEY_F7 = 0xe01a, GLFW_FKEY_F7 = 0xe01au,
GLFW_FKEY_F8 = 0xe01b, GLFW_FKEY_F8 = 0xe01bu,
GLFW_FKEY_F9 = 0xe01c, GLFW_FKEY_F9 = 0xe01cu,
GLFW_FKEY_F10 = 0xe01d, GLFW_FKEY_F10 = 0xe01du,
GLFW_FKEY_F11 = 0xe01e, GLFW_FKEY_F11 = 0xe01eu,
GLFW_FKEY_F12 = 0xe01f, GLFW_FKEY_F12 = 0xe01fu,
GLFW_FKEY_F13 = 0xe020, GLFW_FKEY_F13 = 0xe020u,
GLFW_FKEY_F14 = 0xe021, GLFW_FKEY_F14 = 0xe021u,
GLFW_FKEY_F15 = 0xe022, GLFW_FKEY_F15 = 0xe022u,
GLFW_FKEY_F16 = 0xe023, GLFW_FKEY_F16 = 0xe023u,
GLFW_FKEY_F17 = 0xe024, GLFW_FKEY_F17 = 0xe024u,
GLFW_FKEY_F18 = 0xe025, GLFW_FKEY_F18 = 0xe025u,
GLFW_FKEY_F19 = 0xe026, GLFW_FKEY_F19 = 0xe026u,
GLFW_FKEY_F20 = 0xe027, GLFW_FKEY_F20 = 0xe027u,
GLFW_FKEY_F21 = 0xe028, GLFW_FKEY_F21 = 0xe028u,
GLFW_FKEY_F22 = 0xe029, GLFW_FKEY_F22 = 0xe029u,
GLFW_FKEY_F23 = 0xe02a, GLFW_FKEY_F23 = 0xe02au,
GLFW_FKEY_F24 = 0xe02b, GLFW_FKEY_F24 = 0xe02bu,
GLFW_FKEY_F25 = 0xe02c, GLFW_FKEY_F25 = 0xe02cu,
GLFW_FKEY_F26 = 0xe02d, GLFW_FKEY_F26 = 0xe02du,
GLFW_FKEY_F27 = 0xe02e, GLFW_FKEY_F27 = 0xe02eu,
GLFW_FKEY_F28 = 0xe02f, GLFW_FKEY_F28 = 0xe02fu,
GLFW_FKEY_F29 = 0xe030, GLFW_FKEY_F29 = 0xe030u,
GLFW_FKEY_F30 = 0xe031, GLFW_FKEY_F30 = 0xe031u,
GLFW_FKEY_F31 = 0xe032, GLFW_FKEY_F31 = 0xe032u,
GLFW_FKEY_F32 = 0xe033, GLFW_FKEY_F32 = 0xe033u,
GLFW_FKEY_F33 = 0xe034, GLFW_FKEY_F33 = 0xe034u,
GLFW_FKEY_F34 = 0xe035, GLFW_FKEY_F34 = 0xe035u,
GLFW_FKEY_F35 = 0xe036, GLFW_FKEY_F35 = 0xe036u,
GLFW_FKEY_KP_0 = 0xe037, GLFW_FKEY_KP_0 = 0xe037u,
GLFW_FKEY_KP_1 = 0xe038, GLFW_FKEY_KP_1 = 0xe038u,
GLFW_FKEY_KP_2 = 0xe039, GLFW_FKEY_KP_2 = 0xe039u,
GLFW_FKEY_KP_3 = 0xe03a, GLFW_FKEY_KP_3 = 0xe03au,
GLFW_FKEY_KP_4 = 0xe03b, GLFW_FKEY_KP_4 = 0xe03bu,
GLFW_FKEY_KP_5 = 0xe03c, GLFW_FKEY_KP_5 = 0xe03cu,
GLFW_FKEY_KP_6 = 0xe03d, GLFW_FKEY_KP_6 = 0xe03du,
GLFW_FKEY_KP_7 = 0xe03e, GLFW_FKEY_KP_7 = 0xe03eu,
GLFW_FKEY_KP_8 = 0xe03f, GLFW_FKEY_KP_8 = 0xe03fu,
GLFW_FKEY_KP_9 = 0xe040, GLFW_FKEY_KP_9 = 0xe040u,
GLFW_FKEY_KP_DECIMAL = 0xe041, GLFW_FKEY_KP_DECIMAL = 0xe041u,
GLFW_FKEY_KP_DIVIDE = 0xe042, GLFW_FKEY_KP_DIVIDE = 0xe042u,
GLFW_FKEY_KP_MULTIPLY = 0xe043, GLFW_FKEY_KP_MULTIPLY = 0xe043u,
GLFW_FKEY_KP_SUBTRACT = 0xe044, GLFW_FKEY_KP_SUBTRACT = 0xe044u,
GLFW_FKEY_KP_ADD = 0xe045, GLFW_FKEY_KP_ADD = 0xe045u,
GLFW_FKEY_KP_ENTER = 0xe046, GLFW_FKEY_KP_ENTER = 0xe046u,
GLFW_FKEY_KP_EQUAL = 0xe047, GLFW_FKEY_KP_EQUAL = 0xe047u,
GLFW_FKEY_KP_SEPARATOR = 0xe048, GLFW_FKEY_KP_SEPARATOR = 0xe048u,
GLFW_FKEY_KP_LEFT = 0xe049, GLFW_FKEY_KP_LEFT = 0xe049u,
GLFW_FKEY_KP_RIGHT = 0xe04a, GLFW_FKEY_KP_RIGHT = 0xe04au,
GLFW_FKEY_KP_UP = 0xe04b, GLFW_FKEY_KP_UP = 0xe04bu,
GLFW_FKEY_KP_DOWN = 0xe04c, GLFW_FKEY_KP_DOWN = 0xe04cu,
GLFW_FKEY_KP_PAGE_UP = 0xe04d, GLFW_FKEY_KP_PAGE_UP = 0xe04du,
GLFW_FKEY_KP_PAGE_DOWN = 0xe04e, GLFW_FKEY_KP_PAGE_DOWN = 0xe04eu,
GLFW_FKEY_KP_HOME = 0xe04f, GLFW_FKEY_KP_HOME = 0xe04fu,
GLFW_FKEY_KP_END = 0xe050, GLFW_FKEY_KP_END = 0xe050u,
GLFW_FKEY_KP_INSERT = 0xe051, GLFW_FKEY_KP_INSERT = 0xe051u,
GLFW_FKEY_KP_DELETE = 0xe052, GLFW_FKEY_KP_DELETE = 0xe052u,
GLFW_FKEY_LEFT_SHIFT = 0xe053, GLFW_FKEY_LEFT_SHIFT = 0xe053u,
GLFW_FKEY_LEFT_CONTROL = 0xe054, GLFW_FKEY_LEFT_CONTROL = 0xe054u,
GLFW_FKEY_LEFT_ALT = 0xe055, GLFW_FKEY_LEFT_ALT = 0xe055u,
GLFW_FKEY_LEFT_SUPER = 0xe056, GLFW_FKEY_LEFT_SUPER = 0xe056u,
GLFW_FKEY_RIGHT_SHIFT = 0xe057, GLFW_FKEY_RIGHT_SHIFT = 0xe057u,
GLFW_FKEY_RIGHT_CONTROL = 0xe058, GLFW_FKEY_RIGHT_CONTROL = 0xe058u,
GLFW_FKEY_RIGHT_ALT = 0xe059, GLFW_FKEY_RIGHT_ALT = 0xe059u,
GLFW_FKEY_RIGHT_SUPER = 0xe05a, GLFW_FKEY_RIGHT_SUPER = 0xe05au,
GLFW_FKEY_MEDIA_PLAY = 0xe05b, GLFW_FKEY_MEDIA_PLAY = 0xe05bu,
GLFW_FKEY_MEDIA_PAUSE = 0xe05c, GLFW_FKEY_MEDIA_PAUSE = 0xe05cu,
GLFW_FKEY_MEDIA_PLAY_PAUSE = 0xe05d, GLFW_FKEY_MEDIA_PLAY_PAUSE = 0xe05du,
GLFW_FKEY_MEDIA_REVERSE = 0xe05e, GLFW_FKEY_MEDIA_REVERSE = 0xe05eu,
GLFW_FKEY_MEDIA_STOP = 0xe05f, GLFW_FKEY_MEDIA_STOP = 0xe05fu,
GLFW_FKEY_MEDIA_FAST_FORWARD = 0xe060, GLFW_FKEY_MEDIA_FAST_FORWARD = 0xe060u,
GLFW_FKEY_MEDIA_REWIND = 0xe061, GLFW_FKEY_MEDIA_REWIND = 0xe061u,
GLFW_FKEY_MEDIA_TRACK_NEXT = 0xe062, GLFW_FKEY_MEDIA_TRACK_NEXT = 0xe062u,
GLFW_FKEY_MEDIA_TRACK_PREVIOUS = 0xe063, GLFW_FKEY_MEDIA_TRACK_PREVIOUS = 0xe063u,
GLFW_FKEY_MEDIA_RECORD = 0xe064, GLFW_FKEY_MEDIA_RECORD = 0xe064u,
GLFW_FKEY_LOWER_VOLUME = 0xe065, GLFW_FKEY_LOWER_VOLUME = 0xe065u,
GLFW_FKEY_RAISE_VOLUME = 0xe066, GLFW_FKEY_RAISE_VOLUME = 0xe066u,
GLFW_FKEY_MUTE_VOLUME = 0xe067, GLFW_FKEY_MUTE_VOLUME = 0xe067u,
GLFW_FKEY_LAST = 0xe067 GLFW_FKEY_LAST = 0xe067u
} GLFWFunctionKey; } GLFWFunctionKey;
/* end functional key names */ /* end functional key names */
/* The unknown key */
#define GLFW_KEY_UNKNOWN -1
/* Printable keys */
#define GLFW_KEY_SPACE 32
#define GLFW_KEY_EXCLAM 33 /* ! */
#define GLFW_KEY_DOUBLE_QUOTE 34 /* " */
#define GLFW_KEY_NUMBER_SIGN 35 /* # */
#define GLFW_KEY_DOLLAR 36 /* $ */
#define GLFW_KEY_AMPERSAND 38 /* & */
#define GLFW_KEY_APOSTROPHE 39 /* ' */
#define GLFW_KEY_PARENTHESIS_LEFT 40 /* ( */
#define GLFW_KEY_PARENTHESIS_RIGHT 41 /* ) */
#define GLFW_KEY_PLUS 43 /* + */
#define GLFW_KEY_COMMA 44 /* , */
#define GLFW_KEY_MINUS 45 /* - */
#define GLFW_KEY_PERIOD 46 /* . */
#define GLFW_KEY_SLASH 47 /* / */
#define GLFW_KEY_0 48
#define GLFW_KEY_1 49
#define GLFW_KEY_2 50
#define GLFW_KEY_3 51
#define GLFW_KEY_4 52
#define GLFW_KEY_5 53
#define GLFW_KEY_6 54
#define GLFW_KEY_7 55
#define GLFW_KEY_8 56
#define GLFW_KEY_9 57
#define GLFW_KEY_COLON 58 /* : */
#define GLFW_KEY_SEMICOLON 59 /* ; */
#define GLFW_KEY_LESS 60 /* < */
#define GLFW_KEY_EQUAL 61 /* = */
#define GLFW_KEY_GREATER 62 /* > */
#define GLFW_KEY_AT 64 /* @ */
#define GLFW_KEY_A 65
#define GLFW_KEY_B 66
#define GLFW_KEY_C 67
#define GLFW_KEY_D 68
#define GLFW_KEY_E 69
#define GLFW_KEY_F 70
#define GLFW_KEY_G 71
#define GLFW_KEY_H 72
#define GLFW_KEY_I 73
#define GLFW_KEY_J 74
#define GLFW_KEY_K 75
#define GLFW_KEY_L 76
#define GLFW_KEY_M 77
#define GLFW_KEY_N 78
#define GLFW_KEY_O 79
#define GLFW_KEY_P 80
#define GLFW_KEY_Q 81
#define GLFW_KEY_R 82
#define GLFW_KEY_S 83
#define GLFW_KEY_T 84
#define GLFW_KEY_U 85
#define GLFW_KEY_V 86
#define GLFW_KEY_W 87
#define GLFW_KEY_X 88
#define GLFW_KEY_Y 89
#define GLFW_KEY_Z 90
#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
#define GLFW_KEY_BACKSLASH 92 /* \ */
#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
#define GLFW_KEY_CIRCUMFLEX 94 /* ^ */
#define GLFW_KEY_UNDERSCORE 95 /* _ */
#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
#define GLFW_KEY_PARAGRAPH 167 /* § */
#define GLFW_KEY_MASCULINE 186 /* º */
#define GLFW_KEY_A_GRAVE 192 /* À */
#define GLFW_KEY_A_DIAERESIS 196 /* Ä */
#define GLFW_KEY_A_RING 197 /* Å */
#define GLFW_KEY_AE 198 /* Æ */
#define GLFW_KEY_C_CEDILLA 199 /* Ç */
#define GLFW_KEY_E_GRAVE 200 /* È */
#define GLFW_KEY_E_ACUTE 201 /* É */
#define GLFW_KEY_I_GRAVE 204 /* Ì */
#define GLFW_KEY_N_TILDE 209 /* Ñ */
#define GLFW_KEY_O_GRAVE 210 /* Ò */
#define GLFW_KEY_O_DIAERESIS 214 /* Ö */
#define GLFW_KEY_O_SLASH 216 /* Ø */
#define GLFW_KEY_U_GRAVE 217 /* Ù */
#define GLFW_KEY_U_DIAERESIS 220 /* Ü */
#define GLFW_KEY_S_SHARP 222 /* ß */
#define GLFW_KEY_CYRILLIC_A 223 /* А */
#define GLFW_KEY_CYRILLIC_BE 224 /* Б */
#define GLFW_KEY_CYRILLIC_VE 225 /* В */
#define GLFW_KEY_CYRILLIC_GHE 226 /* Г */
#define GLFW_KEY_CYRILLIC_DE 227 /* Д */
#define GLFW_KEY_CYRILLIC_IE 228 /* Е */
#define GLFW_KEY_CYRILLIC_ZHE 229 /* Ж */
#define GLFW_KEY_CYRILLIC_ZE 230 /* З */
#define GLFW_KEY_CYRILLIC_I 231 /* И */
#define GLFW_KEY_CYRILLIC_SHORT_I 232 /* Й */
#define GLFW_KEY_CYRILLIC_KA 233 /* К */
#define GLFW_KEY_CYRILLIC_EL 234 /* Л */
#define GLFW_KEY_CYRILLIC_EM 235 /* М */
#define GLFW_KEY_CYRILLIC_EN 236 /* Н */
#define GLFW_KEY_CYRILLIC_O 237 /* О */
#define GLFW_KEY_CYRILLIC_PE 238 /* П */
#define GLFW_KEY_CYRILLIC_ER 239 /* Р */
#define GLFW_KEY_CYRILLIC_ES 240 /* С */
#define GLFW_KEY_CYRILLIC_TE 241 /* Т */
#define GLFW_KEY_CYRILLIC_U 242 /* У */
#define GLFW_KEY_CYRILLIC_EF 243 /* Ф */
#define GLFW_KEY_CYRILLIC_HA 244 /* Х */
#define GLFW_KEY_CYRILLIC_TSE 245 /* Ц */
#define GLFW_KEY_CYRILLIC_CHE 246 /* Ч */
#define GLFW_KEY_CYRILLIC_SHA 247 /* Ш */
#define GLFW_KEY_CYRILLIC_SHCHA 248 /* Щ */
#define GLFW_KEY_CYRILLIC_HARD_SIGN 249 /* Ъ */
#define GLFW_KEY_CYRILLIC_YERU 250 /* Ы */
#define GLFW_KEY_CYRILLIC_SOFT_SIGN 251 /* Ь */
#define GLFW_KEY_CYRILLIC_E 252 /* Э */
#define GLFW_KEY_CYRILLIC_YU 253 /* Ю */
#define GLFW_KEY_CYRILLIC_YA 254 /* Я */
#define GLFW_KEY_CYRILLIC_IO 255 /* Ё */
#define GLFW_KEY_LAST_PRINTABLE GLFW_KEY_CYRILLIC_IO
/* Function keys */
#define GLFW_KEY_ESCAPE 256
#define GLFW_KEY_ENTER 257
#define GLFW_KEY_TAB 258
#define GLFW_KEY_BACKSPACE 259
#define GLFW_KEY_INSERT 260
#define GLFW_KEY_DELETE 261
#define GLFW_KEY_RIGHT 262
#define GLFW_KEY_LEFT 263
#define GLFW_KEY_DOWN 264
#define GLFW_KEY_UP 265
#define GLFW_KEY_PAGE_UP 266
#define GLFW_KEY_PAGE_DOWN 267
#define GLFW_KEY_HOME 268
#define GLFW_KEY_END 269
#define GLFW_KEY_CAPS_LOCK 280
#define GLFW_KEY_SCROLL_LOCK 281
#define GLFW_KEY_NUM_LOCK 282
#define GLFW_KEY_PRINT_SCREEN 283
#define GLFW_KEY_PAUSE 284
#define GLFW_KEY_F1 290
#define GLFW_KEY_F2 291
#define GLFW_KEY_F3 292
#define GLFW_KEY_F4 293
#define GLFW_KEY_F5 294
#define GLFW_KEY_F6 295
#define GLFW_KEY_F7 296
#define GLFW_KEY_F8 297
#define GLFW_KEY_F9 298
#define GLFW_KEY_F10 299
#define GLFW_KEY_F11 300
#define GLFW_KEY_F12 301
#define GLFW_KEY_F13 302
#define GLFW_KEY_F14 303
#define GLFW_KEY_F15 304
#define GLFW_KEY_F16 305
#define GLFW_KEY_F17 306
#define GLFW_KEY_F18 307
#define GLFW_KEY_F19 308
#define GLFW_KEY_F20 309
#define GLFW_KEY_F21 310
#define GLFW_KEY_F22 311
#define GLFW_KEY_F23 312
#define GLFW_KEY_F24 313
#define GLFW_KEY_F25 314
#define GLFW_KEY_KP_0 320
#define GLFW_KEY_KP_1 321
#define GLFW_KEY_KP_2 322
#define GLFW_KEY_KP_3 323
#define GLFW_KEY_KP_4 324
#define GLFW_KEY_KP_5 325
#define GLFW_KEY_KP_6 326
#define GLFW_KEY_KP_7 327
#define GLFW_KEY_KP_8 328
#define GLFW_KEY_KP_9 329
#define GLFW_KEY_KP_DECIMAL 330
#define GLFW_KEY_KP_DIVIDE 331
#define GLFW_KEY_KP_MULTIPLY 332
#define GLFW_KEY_KP_SUBTRACT 333
#define GLFW_KEY_KP_ADD 334
#define GLFW_KEY_KP_ENTER 335
#define GLFW_KEY_KP_EQUAL 336
#define GLFW_KEY_LEFT_SHIFT 340
#define GLFW_KEY_LEFT_CONTROL 341
#define GLFW_KEY_LEFT_ALT 342
#define GLFW_KEY_LEFT_SUPER 343
#define GLFW_KEY_RIGHT_SHIFT 344
#define GLFW_KEY_RIGHT_CONTROL 345
#define GLFW_KEY_RIGHT_ALT 346
#define GLFW_KEY_RIGHT_SUPER 347
#define GLFW_KEY_MENU 348
#define GLFW_KEY_LAST GLFW_KEY_MENU
/*! @} */ /*! @} */
/*! @defgroup mods Modifier key flags /*! @defgroup mods Modifier key flags

View File

@ -225,19 +225,19 @@ refresh_callback(GLFWwindow *w) {
static int mods_at_last_key_or_button_event = 0; static int mods_at_last_key_or_button_event = 0;
static inline int static inline int
key_to_modifier(int key) { key_to_modifier(uint32_t key) {
switch(key) { switch(key) {
case GLFW_KEY_LEFT_SHIFT: case GLFW_FKEY_LEFT_SHIFT:
case GLFW_KEY_RIGHT_SHIFT: case GLFW_FKEY_RIGHT_SHIFT:
return GLFW_MOD_SHIFT; return GLFW_MOD_SHIFT;
case GLFW_KEY_LEFT_CONTROL: case GLFW_FKEY_LEFT_CONTROL:
case GLFW_KEY_RIGHT_CONTROL: case GLFW_FKEY_RIGHT_CONTROL:
return GLFW_MOD_CONTROL; return GLFW_MOD_CONTROL;
case GLFW_KEY_LEFT_ALT: case GLFW_FKEY_LEFT_ALT:
case GLFW_KEY_RIGHT_ALT: case GLFW_FKEY_RIGHT_ALT:
return GLFW_MOD_ALT; return GLFW_MOD_ALT;
case GLFW_KEY_LEFT_SUPER: case GLFW_FKEY_LEFT_SUPER:
case GLFW_KEY_RIGHT_SUPER: case GLFW_FKEY_RIGHT_SUPER:
return GLFW_MOD_SUPER; return GLFW_MOD_SUPER;
default: default:
return -1; return -1;
@ -1257,201 +1257,112 @@ init_glfw(PyObject *m) {
ADDC(true); ADDC(false); ADDC(true); ADDC(false);
ADDC(GLFW_IBEAM_CURSOR); ADDC(GLFW_HAND_CURSOR); ADDC(GLFW_ARROW_CURSOR); ADDC(GLFW_IBEAM_CURSOR); ADDC(GLFW_HAND_CURSOR); ADDC(GLFW_ARROW_CURSOR);
// --- Keys -------------------------------------------------------------------- /* start glfw functional keys (auto generated by gen-key-constants.py do not edit) */
ADDC(GLFW_FKEY_ESCAPE);
// --- The unknown key --------------------------------------------------------- ADDC(GLFW_FKEY_ENTER);
ADDC(GLFW_KEY_UNKNOWN); ADDC(GLFW_FKEY_TAB);
ADDC(GLFW_FKEY_BACKSPACE);
// --- Printable keys ---------------------------------------------------------- ADDC(GLFW_FKEY_INSERT);
ADDC(GLFW_KEY_SPACE); ADDC(GLFW_FKEY_DELETE);
ADDC(GLFW_KEY_EXCLAM); ADDC(GLFW_FKEY_LEFT);
ADDC(GLFW_KEY_DOUBLE_QUOTE); ADDC(GLFW_FKEY_RIGHT);
ADDC(GLFW_KEY_NUMBER_SIGN); ADDC(GLFW_FKEY_UP);
ADDC(GLFW_KEY_DOLLAR); ADDC(GLFW_FKEY_DOWN);
ADDC(GLFW_KEY_AMPERSAND); ADDC(GLFW_FKEY_PAGE_UP);
ADDC(GLFW_KEY_APOSTROPHE); ADDC(GLFW_FKEY_PAGE_DOWN);
ADDC(GLFW_KEY_PARENTHESIS_LEFT); ADDC(GLFW_FKEY_HOME);
ADDC(GLFW_KEY_PARENTHESIS_RIGHT); ADDC(GLFW_FKEY_END);
ADDC(GLFW_KEY_PLUS); ADDC(GLFW_FKEY_CAPS_LOCK);
ADDC(GLFW_KEY_COMMA); ADDC(GLFW_FKEY_SCROLL_LOCK);
ADDC(GLFW_KEY_MINUS); ADDC(GLFW_FKEY_NUM_LOCK);
ADDC(GLFW_KEY_PERIOD); ADDC(GLFW_FKEY_PRINT_SCREEN);
ADDC(GLFW_KEY_SLASH); ADDC(GLFW_FKEY_PAUSE);
ADDC(GLFW_KEY_0); ADDC(GLFW_FKEY_MENU);
ADDC(GLFW_KEY_1); ADDC(GLFW_FKEY_F1);
ADDC(GLFW_KEY_2); ADDC(GLFW_FKEY_F2);
ADDC(GLFW_KEY_3); ADDC(GLFW_FKEY_F3);
ADDC(GLFW_KEY_4); ADDC(GLFW_FKEY_F4);
ADDC(GLFW_KEY_5); ADDC(GLFW_FKEY_F5);
ADDC(GLFW_KEY_6); ADDC(GLFW_FKEY_F6);
ADDC(GLFW_KEY_7); ADDC(GLFW_FKEY_F7);
ADDC(GLFW_KEY_8); ADDC(GLFW_FKEY_F8);
ADDC(GLFW_KEY_9); ADDC(GLFW_FKEY_F9);
ADDC(GLFW_KEY_COLON); ADDC(GLFW_FKEY_F10);
ADDC(GLFW_KEY_SEMICOLON); ADDC(GLFW_FKEY_F11);
ADDC(GLFW_KEY_LESS); ADDC(GLFW_FKEY_F12);
ADDC(GLFW_KEY_EQUAL); ADDC(GLFW_FKEY_F13);
ADDC(GLFW_KEY_GREATER); ADDC(GLFW_FKEY_F14);
ADDC(GLFW_KEY_AT); ADDC(GLFW_FKEY_F15);
ADDC(GLFW_KEY_A); ADDC(GLFW_FKEY_F16);
ADDC(GLFW_KEY_B); ADDC(GLFW_FKEY_F17);
ADDC(GLFW_KEY_C); ADDC(GLFW_FKEY_F18);
ADDC(GLFW_KEY_D); ADDC(GLFW_FKEY_F19);
ADDC(GLFW_KEY_E); ADDC(GLFW_FKEY_F20);
ADDC(GLFW_KEY_F); ADDC(GLFW_FKEY_F21);
ADDC(GLFW_KEY_G); ADDC(GLFW_FKEY_F22);
ADDC(GLFW_KEY_H); ADDC(GLFW_FKEY_F23);
ADDC(GLFW_KEY_I); ADDC(GLFW_FKEY_F24);
ADDC(GLFW_KEY_J); ADDC(GLFW_FKEY_F25);
ADDC(GLFW_KEY_K); ADDC(GLFW_FKEY_F26);
ADDC(GLFW_KEY_L); ADDC(GLFW_FKEY_F27);
ADDC(GLFW_KEY_M); ADDC(GLFW_FKEY_F28);
ADDC(GLFW_KEY_N); ADDC(GLFW_FKEY_F29);
ADDC(GLFW_KEY_O); ADDC(GLFW_FKEY_F30);
ADDC(GLFW_KEY_P); ADDC(GLFW_FKEY_F31);
ADDC(GLFW_KEY_Q); ADDC(GLFW_FKEY_F32);
ADDC(GLFW_KEY_R); ADDC(GLFW_FKEY_F33);
ADDC(GLFW_KEY_S); ADDC(GLFW_FKEY_F34);
ADDC(GLFW_KEY_T); ADDC(GLFW_FKEY_F35);
ADDC(GLFW_KEY_U); ADDC(GLFW_FKEY_KP_0);
ADDC(GLFW_KEY_V); ADDC(GLFW_FKEY_KP_1);
ADDC(GLFW_KEY_W); ADDC(GLFW_FKEY_KP_2);
ADDC(GLFW_KEY_X); ADDC(GLFW_FKEY_KP_3);
ADDC(GLFW_KEY_Y); ADDC(GLFW_FKEY_KP_4);
ADDC(GLFW_KEY_Z); ADDC(GLFW_FKEY_KP_5);
ADDC(GLFW_KEY_LEFT_BRACKET); ADDC(GLFW_FKEY_KP_6);
ADDC(GLFW_KEY_BACKSLASH); ADDC(GLFW_FKEY_KP_7);
ADDC(GLFW_KEY_RIGHT_BRACKET); ADDC(GLFW_FKEY_KP_8);
ADDC(GLFW_KEY_CIRCUMFLEX); ADDC(GLFW_FKEY_KP_9);
ADDC(GLFW_KEY_UNDERSCORE); ADDC(GLFW_FKEY_KP_DECIMAL);
ADDC(GLFW_KEY_GRAVE_ACCENT); ADDC(GLFW_FKEY_KP_DIVIDE);
ADDC(GLFW_KEY_WORLD_1); ADDC(GLFW_FKEY_KP_MULTIPLY);
ADDC(GLFW_KEY_WORLD_2); ADDC(GLFW_FKEY_KP_SUBTRACT);
ADDC(GLFW_KEY_PARAGRAPH); ADDC(GLFW_FKEY_KP_ADD);
ADDC(GLFW_KEY_MASCULINE); ADDC(GLFW_FKEY_KP_ENTER);
ADDC(GLFW_KEY_A_GRAVE); ADDC(GLFW_FKEY_KP_EQUAL);
ADDC(GLFW_KEY_A_DIAERESIS); ADDC(GLFW_FKEY_KP_SEPARATOR);
ADDC(GLFW_KEY_A_RING); ADDC(GLFW_FKEY_KP_LEFT);
ADDC(GLFW_KEY_AE); ADDC(GLFW_FKEY_KP_RIGHT);
ADDC(GLFW_KEY_C_CEDILLA); ADDC(GLFW_FKEY_KP_UP);
ADDC(GLFW_KEY_E_GRAVE); ADDC(GLFW_FKEY_KP_DOWN);
ADDC(GLFW_KEY_E_ACUTE); ADDC(GLFW_FKEY_KP_PAGE_UP);
ADDC(GLFW_KEY_I_GRAVE); ADDC(GLFW_FKEY_KP_PAGE_DOWN);
ADDC(GLFW_KEY_N_TILDE); ADDC(GLFW_FKEY_KP_HOME);
ADDC(GLFW_KEY_O_GRAVE); ADDC(GLFW_FKEY_KP_END);
ADDC(GLFW_KEY_O_DIAERESIS); ADDC(GLFW_FKEY_KP_INSERT);
ADDC(GLFW_KEY_O_SLASH); ADDC(GLFW_FKEY_KP_DELETE);
ADDC(GLFW_KEY_U_GRAVE); ADDC(GLFW_FKEY_LEFT_SHIFT);
ADDC(GLFW_KEY_U_DIAERESIS); ADDC(GLFW_FKEY_LEFT_CONTROL);
ADDC(GLFW_KEY_S_SHARP); ADDC(GLFW_FKEY_LEFT_ALT);
ADDC(GLFW_KEY_CYRILLIC_A); ADDC(GLFW_FKEY_LEFT_SUPER);
ADDC(GLFW_KEY_CYRILLIC_BE); ADDC(GLFW_FKEY_RIGHT_SHIFT);
ADDC(GLFW_KEY_CYRILLIC_VE); ADDC(GLFW_FKEY_RIGHT_CONTROL);
ADDC(GLFW_KEY_CYRILLIC_GHE); ADDC(GLFW_FKEY_RIGHT_ALT);
ADDC(GLFW_KEY_CYRILLIC_DE); ADDC(GLFW_FKEY_RIGHT_SUPER);
ADDC(GLFW_KEY_CYRILLIC_IE); ADDC(GLFW_FKEY_MEDIA_PLAY);
ADDC(GLFW_KEY_CYRILLIC_ZHE); ADDC(GLFW_FKEY_MEDIA_PAUSE);
ADDC(GLFW_KEY_CYRILLIC_ZE); ADDC(GLFW_FKEY_MEDIA_PLAY_PAUSE);
ADDC(GLFW_KEY_CYRILLIC_I); ADDC(GLFW_FKEY_MEDIA_REVERSE);
ADDC(GLFW_KEY_CYRILLIC_SHORT_I); ADDC(GLFW_FKEY_MEDIA_STOP);
ADDC(GLFW_KEY_CYRILLIC_KA); ADDC(GLFW_FKEY_MEDIA_FAST_FORWARD);
ADDC(GLFW_KEY_CYRILLIC_EL); ADDC(GLFW_FKEY_MEDIA_REWIND);
ADDC(GLFW_KEY_CYRILLIC_EM); ADDC(GLFW_FKEY_MEDIA_TRACK_NEXT);
ADDC(GLFW_KEY_CYRILLIC_EN); ADDC(GLFW_FKEY_MEDIA_TRACK_PREVIOUS);
ADDC(GLFW_KEY_CYRILLIC_O); ADDC(GLFW_FKEY_MEDIA_RECORD);
ADDC(GLFW_KEY_CYRILLIC_PE); ADDC(GLFW_FKEY_LOWER_VOLUME);
ADDC(GLFW_KEY_CYRILLIC_ER); ADDC(GLFW_FKEY_RAISE_VOLUME);
ADDC(GLFW_KEY_CYRILLIC_ES); ADDC(GLFW_FKEY_MUTE_VOLUME);
ADDC(GLFW_KEY_CYRILLIC_TE); /* end glfw functional keys */
ADDC(GLFW_KEY_CYRILLIC_U);
ADDC(GLFW_KEY_CYRILLIC_EF);
ADDC(GLFW_KEY_CYRILLIC_HA);
ADDC(GLFW_KEY_CYRILLIC_TSE);
ADDC(GLFW_KEY_CYRILLIC_CHE);
ADDC(GLFW_KEY_CYRILLIC_SHA);
ADDC(GLFW_KEY_CYRILLIC_SHCHA);
ADDC(GLFW_KEY_CYRILLIC_HARD_SIGN);
ADDC(GLFW_KEY_CYRILLIC_YERU);
ADDC(GLFW_KEY_CYRILLIC_SOFT_SIGN);
ADDC(GLFW_KEY_CYRILLIC_E);
ADDC(GLFW_KEY_CYRILLIC_YU);
ADDC(GLFW_KEY_CYRILLIC_YA);
ADDC(GLFW_KEY_CYRILLIC_IO);
ADDC(GLFW_KEY_LAST_PRINTABLE);
// --- Function keys -----------------------------------------------------------
ADDC(GLFW_KEY_ESCAPE);
ADDC(GLFW_KEY_ENTER);
ADDC(GLFW_KEY_TAB);
ADDC(GLFW_KEY_BACKSPACE);
ADDC(GLFW_KEY_INSERT);
ADDC(GLFW_KEY_DELETE);
ADDC(GLFW_KEY_RIGHT);
ADDC(GLFW_KEY_LEFT);
ADDC(GLFW_KEY_DOWN);
ADDC(GLFW_KEY_UP);
ADDC(GLFW_KEY_PAGE_UP);
ADDC(GLFW_KEY_PAGE_DOWN);
ADDC(GLFW_KEY_HOME);
ADDC(GLFW_KEY_END);
ADDC(GLFW_KEY_CAPS_LOCK);
ADDC(GLFW_KEY_SCROLL_LOCK);
ADDC(GLFW_KEY_NUM_LOCK);
ADDC(GLFW_KEY_PRINT_SCREEN);
ADDC(GLFW_KEY_PAUSE);
ADDC(GLFW_KEY_F1);
ADDC(GLFW_KEY_F2);
ADDC(GLFW_KEY_F3);
ADDC(GLFW_KEY_F4);
ADDC(GLFW_KEY_F5);
ADDC(GLFW_KEY_F6);
ADDC(GLFW_KEY_F7);
ADDC(GLFW_KEY_F8);
ADDC(GLFW_KEY_F9);
ADDC(GLFW_KEY_F10);
ADDC(GLFW_KEY_F11);
ADDC(GLFW_KEY_F12);
ADDC(GLFW_KEY_F13);
ADDC(GLFW_KEY_F14);
ADDC(GLFW_KEY_F15);
ADDC(GLFW_KEY_F16);
ADDC(GLFW_KEY_F17);
ADDC(GLFW_KEY_F18);
ADDC(GLFW_KEY_F19);
ADDC(GLFW_KEY_F20);
ADDC(GLFW_KEY_F21);
ADDC(GLFW_KEY_F22);
ADDC(GLFW_KEY_F23);
ADDC(GLFW_KEY_F24);
ADDC(GLFW_KEY_F25);
ADDC(GLFW_KEY_KP_0);
ADDC(GLFW_KEY_KP_1);
ADDC(GLFW_KEY_KP_2);
ADDC(GLFW_KEY_KP_3);
ADDC(GLFW_KEY_KP_4);
ADDC(GLFW_KEY_KP_5);
ADDC(GLFW_KEY_KP_6);
ADDC(GLFW_KEY_KP_7);
ADDC(GLFW_KEY_KP_8);
ADDC(GLFW_KEY_KP_9);
ADDC(GLFW_KEY_KP_DECIMAL);
ADDC(GLFW_KEY_KP_DIVIDE);
ADDC(GLFW_KEY_KP_MULTIPLY);
ADDC(GLFW_KEY_KP_SUBTRACT);
ADDC(GLFW_KEY_KP_ADD);
ADDC(GLFW_KEY_KP_ENTER);
ADDC(GLFW_KEY_KP_EQUAL);
ADDC(GLFW_KEY_LEFT_SHIFT);
ADDC(GLFW_KEY_LEFT_CONTROL);
ADDC(GLFW_KEY_LEFT_ALT);
ADDC(GLFW_KEY_LEFT_SUPER);
ADDC(GLFW_KEY_RIGHT_SHIFT);
ADDC(GLFW_KEY_RIGHT_CONTROL);
ADDC(GLFW_KEY_RIGHT_ALT);
ADDC(GLFW_KEY_RIGHT_SUPER);
ADDC(GLFW_KEY_MENU);
ADDC(GLFW_KEY_LAST);
// --- Modifiers --------------------------------------------------------------- // --- Modifiers ---------------------------------------------------------------
ADDC(GLFW_MOD_SHIFT); ADDC(GLFW_MOD_SHIFT);
ADDC(GLFW_MOD_CONTROL); ADDC(GLFW_MOD_CONTROL);

View File

@ -20,17 +20,17 @@ active_window(void) {
} }
static inline bool static inline bool
is_modifier_key(int key) { is_modifier_key(uint32_t key) {
switch(key) { switch(key) {
case GLFW_KEY_LEFT_SHIFT: case GLFW_FKEY_LEFT_SHIFT:
case GLFW_KEY_RIGHT_SHIFT: case GLFW_FKEY_RIGHT_SHIFT:
case GLFW_KEY_LEFT_ALT: case GLFW_FKEY_LEFT_ALT:
case GLFW_KEY_RIGHT_ALT: case GLFW_FKEY_RIGHT_ALT:
case GLFW_KEY_LEFT_CONTROL: case GLFW_FKEY_LEFT_CONTROL:
case GLFW_KEY_RIGHT_CONTROL: case GLFW_FKEY_RIGHT_CONTROL:
case GLFW_KEY_LEFT_SUPER: case GLFW_FKEY_LEFT_SUPER:
case GLFW_KEY_RIGHT_SUPER: case GLFW_FKEY_RIGHT_SUPER:
case GLFW_KEY_CAPS_LOCK: case GLFW_FKEY_CAPS_LOCK:
return true; return true;
default: default:
return false; return false;
@ -87,7 +87,7 @@ on_key_input(GLFWkeyevent *ev) {
debug("in sequence mode, handling as shortcut\n"); debug("in sequence mode, handling as shortcut\n");
if ( if (
action != GLFW_RELEASE && action != GLFW_RELEASE &&
key != GLFW_KEY_LEFT_SHIFT && key != GLFW_KEY_RIGHT_SHIFT && key != GLFW_KEY_LEFT_ALT && key != GLFW_KEY_RIGHT_ALT && key != GLFW_KEY_LEFT_CONTROL && key != GLFW_KEY_RIGHT_CONTROL key != GLFW_FKEY_LEFT_SHIFT && key != GLFW_FKEY_RIGHT_SHIFT && key != GLFW_FKEY_LEFT_ALT && key != GLFW_FKEY_RIGHT_ALT && key != GLFW_FKEY_LEFT_CONTROL && key != GLFW_FKEY_RIGHT_CONTROL
) call_boss(process_sequence, "iiii", key, native_key, action, mods); ) call_boss(process_sequence, "iiii", key, native_key, action, mods);
return; return;
} }
@ -126,7 +126,7 @@ on_key_input(GLFWkeyevent *ev) {
void void
fake_scroll(Window *w, int amount, bool upwards) { fake_scroll(Window *w, int amount, bool upwards) {
if (!w) return; if (!w) return;
int key = upwards ? GLFW_KEY_UP : GLFW_KEY_DOWN; int key = upwards ? GLFW_FKEY_UP : GLFW_FKEY_DOWN;
GLFWkeyevent ev = {.key = key }; GLFWkeyevent ev = {.key = key };
char encoded_key[KEY_BUFFER_SIZE] = {0}; char encoded_key[KEY_BUFFER_SIZE] = {0};
Screen *screen = w->render_data.screen; Screen *screen = w->render_data.screen;
@ -160,11 +160,11 @@ PYWRAP1(key_for_native_key_name) {
static PyObject* static PyObject*
pyencode_key_for_tty(PyObject *self UNUSED, PyObject *args, PyObject *kw) { pyencode_key_for_tty(PyObject *self UNUSED, PyObject *args, PyObject *kw) {
char *kwds[] = {"key", "shifted_key", "alternate_key", "mods", "action", "text", "cursor_key_mode", "key_encoding_flags"}; static char *kwds[] = {"key", "shifted_key", "alternate_key", "mods", "action", "key_encoding_flags", "text", "cursor_key_mode", NULL};
unsigned int key = 0, shifted_key = 0, alternate_key = 0, mods = 0, action = 0, key_encoding_flags = 0; unsigned int key = 0, shifted_key = 0, alternate_key = 0, mods = 0, action = GLFW_PRESS, key_encoding_flags = 0;
const char *text = NULL; const char *text = NULL;
int cursor_key_mode = 0; int cursor_key_mode = 0;
if (!PyArg_ParseTupleAndKeywords(args, kw, "IIIIIspI", kwds, &key, &shifted_key, &alternate_key, &mods, &action, &text, &cursor_key_mode, &key_encoding_flags)) return NULL; if (!PyArg_ParseTupleAndKeywords(args, kw, "I|IIIIIsp", kwds, &key, &shifted_key, &alternate_key, &mods, &action, &key_encoding_flags, &text, &cursor_key_mode)) return NULL;
GLFWkeyevent ev = { .key = key, .shifted_key = shifted_key, .alternate_key = alternate_key, .text = text, .action = action, .mods = mods }; GLFWkeyevent ev = { .key = key, .shifted_key = shifted_key, .alternate_key = alternate_key, .text = text, .action = action, .mods = mods };
char output[KEY_BUFFER_SIZE+1] = {0}; char output[KEY_BUFFER_SIZE+1] = {0};
int num = encode_glfw_key_event(&ev, cursor_key_mode, key_encoding_flags, output); int num = encode_glfw_key_event(&ev, cursor_key_mode, key_encoding_flags, output);