Remove another use of GLFW_KEY
This commit is contained in:
parent
e06b48a344
commit
5297f7474d
@ -170,18 +170,20 @@ def generate_glfw_header() -> None:
|
|||||||
'typedef enum {',
|
'typedef enum {',
|
||||||
f' GLFW_FKEY_FIRST = 0x{start_code:x}u,',
|
f' GLFW_FKEY_FIRST = 0x{start_code:x}u,',
|
||||||
]
|
]
|
||||||
klines, pyi, names = [], [], []
|
klines, pyi, names, knames = [], [], [], []
|
||||||
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}u,')
|
lines.append(f' GLFW_FKEY_{name.upper()} = 0x{code:x}u,')
|
||||||
klines.append(f' ADDC(GLFW_FKEY_{name.upper()});')
|
klines.append(f' ADDC(GLFW_FKEY_{name.upper()});')
|
||||||
pyi.append(f'GLFW_FKEY_{name.upper()}: int')
|
pyi.append(f'GLFW_FKEY_{name.upper()}: int')
|
||||||
names.append(f' case GLFW_FKEY_{name.upper()}: return "{name.upper()}";')
|
names.append(f' case GLFW_FKEY_{name.upper()}: return "{name.upper()}";')
|
||||||
|
knames.append(f' case GLFW_FKEY_{name.upper()}: return PyUnicode_FromString("{name}");')
|
||||||
lines.append(f' GLFW_FKEY_LAST = 0x{last_code:x}u')
|
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/glfw.c', 'glfw functional keys', '\n'.join(klines))
|
||||||
patch_file('kitty/fast_data_types.pyi', 'glfw functional keys', '\n'.join(pyi), start_marker='# ', end_marker='')
|
patch_file('kitty/fast_data_types.pyi', 'glfw functional keys', '\n'.join(pyi), start_marker='# ', end_marker='')
|
||||||
patch_file('glfw/input.c', 'functional key names', '\n'.join(names))
|
patch_file('glfw/input.c', 'functional key names', '\n'.join(names))
|
||||||
|
patch_file('kitty/glfw.c', 'glfw functional key names', '\n'.join(knames))
|
||||||
|
|
||||||
|
|
||||||
def generate_xkb_mapping() -> None:
|
def generate_xkb_mapping() -> None:
|
||||||
|
|||||||
4
glfw/input.c
vendored
4
glfw/input.c
vendored
@ -527,7 +527,8 @@ encode_utf8(uint32_t ch, char* dest) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* _glfwGetKeyName(int key)
|
const char*
|
||||||
|
_glfwGetKeyName(int key)
|
||||||
{
|
{
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
@ -788,6 +789,7 @@ GLFWAPI int glfwRawMouseMotionSupported(void)
|
|||||||
GLFWAPI const char* glfwGetKeyName(uint32_t key, int native_key)
|
GLFWAPI const char* glfwGetKeyName(uint32_t key, int native_key)
|
||||||
{
|
{
|
||||||
_GLFW_REQUIRE_INIT_OR_RETURN(NULL);
|
_GLFW_REQUIRE_INIT_OR_RETURN(NULL);
|
||||||
|
if (key) return _glfwGetKeyName(key);
|
||||||
|
|
||||||
native_key = _glfwPlatformGetNativeKeyForKey(key);
|
native_key = _glfwPlatformGetNativeKeyForKey(key);
|
||||||
return _glfwPlatformGetNativeKeyName(native_key);
|
return _glfwPlatformGetNativeKeyName(native_key);
|
||||||
|
|||||||
18
kitty/cli.py
18
kitty/cli.py
@ -759,14 +759,8 @@ ShortcutMap = Dict[Tuple[SingleKey, ...], KeyAction]
|
|||||||
|
|
||||||
|
|
||||||
def print_shortcut(key_sequence: Iterable[SingleKey], action: KeyAction) -> None:
|
def print_shortcut(key_sequence: Iterable[SingleKey], action: KeyAction) -> None:
|
||||||
if not getattr(print_shortcut, 'maps', None):
|
from .fast_data_types import glfw_get_key_name, GLFW_MOD_ALT, GLFW_MOD_SHIFT, GLFW_MOD_CONTROL, GLFW_MOD_SUPER
|
||||||
from kitty.keys import defines
|
mmap = {'shift': GLFW_MOD_SHIFT, 'alt': GLFW_MOD_ALT, 'ctrl': GLFW_MOD_CONTROL, ('cmd' if is_macos else 'super'): GLFW_MOD_SUPER}
|
||||||
v = vars(defines)
|
|
||||||
mmap = {m[len('GLFW_MOD_'):].lower(): x for m, x in v.items() if m.startswith('GLFW_MOD_')}
|
|
||||||
kmap = {k[len('GLFW_KEY_'):].lower(): x for k, x in v.items() if k.startswith('GLFW_KEY_')}
|
|
||||||
krmap = {v: k for k, v in kmap.items()}
|
|
||||||
setattr(print_shortcut, 'maps', (mmap, krmap))
|
|
||||||
mmap, krmap = getattr(print_shortcut, 'maps')
|
|
||||||
keys = []
|
keys = []
|
||||||
for key_spec in key_sequence:
|
for key_spec in key_sequence:
|
||||||
names = []
|
names = []
|
||||||
@ -775,12 +769,8 @@ def print_shortcut(key_sequence: Iterable[SingleKey], action: KeyAction) -> None
|
|||||||
if mods & val:
|
if mods & val:
|
||||||
names.append(name)
|
names.append(name)
|
||||||
if key:
|
if key:
|
||||||
if is_native:
|
kname = glfw_get_key_name(0, key) if is_native else glfw_get_key_name(key, 0)
|
||||||
from .fast_data_types import GLFW_KEY_UNKNOWN, glfw_get_key_name
|
names.append(kname or f'{key}')
|
||||||
kn = glfw_get_key_name(GLFW_KEY_UNKNOWN, key) or 'Unknown key'
|
|
||||||
names.append(kn)
|
|
||||||
else:
|
|
||||||
names.append(krmap[key])
|
|
||||||
keys.append('+'.join(names))
|
keys.append('+'.join(names))
|
||||||
|
|
||||||
print('\t', ' > '.join(keys), action)
|
print('\t', ' > '.join(keys), action)
|
||||||
|
|||||||
116
kitty/glfw.c
116
kitty/glfw.c
@ -7,6 +7,7 @@
|
|||||||
#include "state.h"
|
#include "state.h"
|
||||||
#include "fonts.h"
|
#include "fonts.h"
|
||||||
#include "monotonic.h"
|
#include "monotonic.h"
|
||||||
|
#include "charsets.h"
|
||||||
#include <structmember.h>
|
#include <structmember.h>
|
||||||
#include "glfw-wrapper.h"
|
#include "glfw-wrapper.h"
|
||||||
extern bool cocoa_make_window_resizable(void *w, bool);
|
extern bool cocoa_make_window_resizable(void *w, bool);
|
||||||
@ -858,8 +859,121 @@ static PyObject*
|
|||||||
glfw_get_key_name(PyObject UNUSED *self, PyObject *args) {
|
glfw_get_key_name(PyObject UNUSED *self, PyObject *args) {
|
||||||
int key, native_key;
|
int key, native_key;
|
||||||
if (!PyArg_ParseTuple(args, "ii", &key, &native_key)) return NULL;
|
if (!PyArg_ParseTuple(args, "ii", &key, &native_key)) return NULL;
|
||||||
|
if (key) {
|
||||||
|
switch (key) {
|
||||||
|
/* start glfw functional key names (auto generated by gen-key-constants.py do not edit) */
|
||||||
|
case GLFW_FKEY_ESCAPE: return PyUnicode_FromString("escape");
|
||||||
|
case GLFW_FKEY_ENTER: return PyUnicode_FromString("enter");
|
||||||
|
case GLFW_FKEY_TAB: return PyUnicode_FromString("tab");
|
||||||
|
case GLFW_FKEY_BACKSPACE: return PyUnicode_FromString("backspace");
|
||||||
|
case GLFW_FKEY_INSERT: return PyUnicode_FromString("insert");
|
||||||
|
case GLFW_FKEY_DELETE: return PyUnicode_FromString("delete");
|
||||||
|
case GLFW_FKEY_LEFT: return PyUnicode_FromString("left");
|
||||||
|
case GLFW_FKEY_RIGHT: return PyUnicode_FromString("right");
|
||||||
|
case GLFW_FKEY_UP: return PyUnicode_FromString("up");
|
||||||
|
case GLFW_FKEY_DOWN: return PyUnicode_FromString("down");
|
||||||
|
case GLFW_FKEY_PAGE_UP: return PyUnicode_FromString("page_up");
|
||||||
|
case GLFW_FKEY_PAGE_DOWN: return PyUnicode_FromString("page_down");
|
||||||
|
case GLFW_FKEY_HOME: return PyUnicode_FromString("home");
|
||||||
|
case GLFW_FKEY_END: return PyUnicode_FromString("end");
|
||||||
|
case GLFW_FKEY_CAPS_LOCK: return PyUnicode_FromString("caps_lock");
|
||||||
|
case GLFW_FKEY_SCROLL_LOCK: return PyUnicode_FromString("scroll_lock");
|
||||||
|
case GLFW_FKEY_NUM_LOCK: return PyUnicode_FromString("num_lock");
|
||||||
|
case GLFW_FKEY_PRINT_SCREEN: return PyUnicode_FromString("print_screen");
|
||||||
|
case GLFW_FKEY_PAUSE: return PyUnicode_FromString("pause");
|
||||||
|
case GLFW_FKEY_MENU: return PyUnicode_FromString("menu");
|
||||||
|
case GLFW_FKEY_F1: return PyUnicode_FromString("f1");
|
||||||
|
case GLFW_FKEY_F2: return PyUnicode_FromString("f2");
|
||||||
|
case GLFW_FKEY_F3: return PyUnicode_FromString("f3");
|
||||||
|
case GLFW_FKEY_F4: return PyUnicode_FromString("f4");
|
||||||
|
case GLFW_FKEY_F5: return PyUnicode_FromString("f5");
|
||||||
|
case GLFW_FKEY_F6: return PyUnicode_FromString("f6");
|
||||||
|
case GLFW_FKEY_F7: return PyUnicode_FromString("f7");
|
||||||
|
case GLFW_FKEY_F8: return PyUnicode_FromString("f8");
|
||||||
|
case GLFW_FKEY_F9: return PyUnicode_FromString("f9");
|
||||||
|
case GLFW_FKEY_F10: return PyUnicode_FromString("f10");
|
||||||
|
case GLFW_FKEY_F11: return PyUnicode_FromString("f11");
|
||||||
|
case GLFW_FKEY_F12: return PyUnicode_FromString("f12");
|
||||||
|
case GLFW_FKEY_F13: return PyUnicode_FromString("f13");
|
||||||
|
case GLFW_FKEY_F14: return PyUnicode_FromString("f14");
|
||||||
|
case GLFW_FKEY_F15: return PyUnicode_FromString("f15");
|
||||||
|
case GLFW_FKEY_F16: return PyUnicode_FromString("f16");
|
||||||
|
case GLFW_FKEY_F17: return PyUnicode_FromString("f17");
|
||||||
|
case GLFW_FKEY_F18: return PyUnicode_FromString("f18");
|
||||||
|
case GLFW_FKEY_F19: return PyUnicode_FromString("f19");
|
||||||
|
case GLFW_FKEY_F20: return PyUnicode_FromString("f20");
|
||||||
|
case GLFW_FKEY_F21: return PyUnicode_FromString("f21");
|
||||||
|
case GLFW_FKEY_F22: return PyUnicode_FromString("f22");
|
||||||
|
case GLFW_FKEY_F23: return PyUnicode_FromString("f23");
|
||||||
|
case GLFW_FKEY_F24: return PyUnicode_FromString("f24");
|
||||||
|
case GLFW_FKEY_F25: return PyUnicode_FromString("f25");
|
||||||
|
case GLFW_FKEY_F26: return PyUnicode_FromString("f26");
|
||||||
|
case GLFW_FKEY_F27: return PyUnicode_FromString("f27");
|
||||||
|
case GLFW_FKEY_F28: return PyUnicode_FromString("f28");
|
||||||
|
case GLFW_FKEY_F29: return PyUnicode_FromString("f29");
|
||||||
|
case GLFW_FKEY_F30: return PyUnicode_FromString("f30");
|
||||||
|
case GLFW_FKEY_F31: return PyUnicode_FromString("f31");
|
||||||
|
case GLFW_FKEY_F32: return PyUnicode_FromString("f32");
|
||||||
|
case GLFW_FKEY_F33: return PyUnicode_FromString("f33");
|
||||||
|
case GLFW_FKEY_F34: return PyUnicode_FromString("f34");
|
||||||
|
case GLFW_FKEY_F35: return PyUnicode_FromString("f35");
|
||||||
|
case GLFW_FKEY_KP_0: return PyUnicode_FromString("kp_0");
|
||||||
|
case GLFW_FKEY_KP_1: return PyUnicode_FromString("kp_1");
|
||||||
|
case GLFW_FKEY_KP_2: return PyUnicode_FromString("kp_2");
|
||||||
|
case GLFW_FKEY_KP_3: return PyUnicode_FromString("kp_3");
|
||||||
|
case GLFW_FKEY_KP_4: return PyUnicode_FromString("kp_4");
|
||||||
|
case GLFW_FKEY_KP_5: return PyUnicode_FromString("kp_5");
|
||||||
|
case GLFW_FKEY_KP_6: return PyUnicode_FromString("kp_6");
|
||||||
|
case GLFW_FKEY_KP_7: return PyUnicode_FromString("kp_7");
|
||||||
|
case GLFW_FKEY_KP_8: return PyUnicode_FromString("kp_8");
|
||||||
|
case GLFW_FKEY_KP_9: return PyUnicode_FromString("kp_9");
|
||||||
|
case GLFW_FKEY_KP_DECIMAL: return PyUnicode_FromString("kp_decimal");
|
||||||
|
case GLFW_FKEY_KP_DIVIDE: return PyUnicode_FromString("kp_divide");
|
||||||
|
case GLFW_FKEY_KP_MULTIPLY: return PyUnicode_FromString("kp_multiply");
|
||||||
|
case GLFW_FKEY_KP_SUBTRACT: return PyUnicode_FromString("kp_subtract");
|
||||||
|
case GLFW_FKEY_KP_ADD: return PyUnicode_FromString("kp_add");
|
||||||
|
case GLFW_FKEY_KP_ENTER: return PyUnicode_FromString("kp_enter");
|
||||||
|
case GLFW_FKEY_KP_EQUAL: return PyUnicode_FromString("kp_equal");
|
||||||
|
case GLFW_FKEY_KP_SEPARATOR: return PyUnicode_FromString("kp_separator");
|
||||||
|
case GLFW_FKEY_KP_LEFT: return PyUnicode_FromString("kp_left");
|
||||||
|
case GLFW_FKEY_KP_RIGHT: return PyUnicode_FromString("kp_right");
|
||||||
|
case GLFW_FKEY_KP_UP: return PyUnicode_FromString("kp_up");
|
||||||
|
case GLFW_FKEY_KP_DOWN: return PyUnicode_FromString("kp_down");
|
||||||
|
case GLFW_FKEY_KP_PAGE_UP: return PyUnicode_FromString("kp_page_up");
|
||||||
|
case GLFW_FKEY_KP_PAGE_DOWN: return PyUnicode_FromString("kp_page_down");
|
||||||
|
case GLFW_FKEY_KP_HOME: return PyUnicode_FromString("kp_home");
|
||||||
|
case GLFW_FKEY_KP_END: return PyUnicode_FromString("kp_end");
|
||||||
|
case GLFW_FKEY_KP_INSERT: return PyUnicode_FromString("kp_insert");
|
||||||
|
case GLFW_FKEY_KP_DELETE: return PyUnicode_FromString("kp_delete");
|
||||||
|
case GLFW_FKEY_LEFT_SHIFT: return PyUnicode_FromString("left_shift");
|
||||||
|
case GLFW_FKEY_LEFT_CONTROL: return PyUnicode_FromString("left_control");
|
||||||
|
case GLFW_FKEY_LEFT_ALT: return PyUnicode_FromString("left_alt");
|
||||||
|
case GLFW_FKEY_LEFT_SUPER: return PyUnicode_FromString("left_super");
|
||||||
|
case GLFW_FKEY_RIGHT_SHIFT: return PyUnicode_FromString("right_shift");
|
||||||
|
case GLFW_FKEY_RIGHT_CONTROL: return PyUnicode_FromString("right_control");
|
||||||
|
case GLFW_FKEY_RIGHT_ALT: return PyUnicode_FromString("right_alt");
|
||||||
|
case GLFW_FKEY_RIGHT_SUPER: return PyUnicode_FromString("right_super");
|
||||||
|
case GLFW_FKEY_MEDIA_PLAY: return PyUnicode_FromString("media_play");
|
||||||
|
case GLFW_FKEY_MEDIA_PAUSE: return PyUnicode_FromString("media_pause");
|
||||||
|
case GLFW_FKEY_MEDIA_PLAY_PAUSE: return PyUnicode_FromString("media_play_pause");
|
||||||
|
case GLFW_FKEY_MEDIA_REVERSE: return PyUnicode_FromString("media_reverse");
|
||||||
|
case GLFW_FKEY_MEDIA_STOP: return PyUnicode_FromString("media_stop");
|
||||||
|
case GLFW_FKEY_MEDIA_FAST_FORWARD: return PyUnicode_FromString("media_fast_forward");
|
||||||
|
case GLFW_FKEY_MEDIA_REWIND: return PyUnicode_FromString("media_rewind");
|
||||||
|
case GLFW_FKEY_MEDIA_TRACK_NEXT: return PyUnicode_FromString("media_track_next");
|
||||||
|
case GLFW_FKEY_MEDIA_TRACK_PREVIOUS: return PyUnicode_FromString("media_track_previous");
|
||||||
|
case GLFW_FKEY_MEDIA_RECORD: return PyUnicode_FromString("media_record");
|
||||||
|
case GLFW_FKEY_LOWER_VOLUME: return PyUnicode_FromString("lower_volume");
|
||||||
|
case GLFW_FKEY_RAISE_VOLUME: return PyUnicode_FromString("raise_volume");
|
||||||
|
case GLFW_FKEY_MUTE_VOLUME: return PyUnicode_FromString("mute_volume");
|
||||||
|
/* end glfw functional key names */
|
||||||
|
}
|
||||||
|
char buf[8] = {0};
|
||||||
|
encode_utf8(key, buf);
|
||||||
|
return PyUnicode_FromString(buf);
|
||||||
|
}
|
||||||
if (!glfwGetKeyName) {
|
if (!glfwGetKeyName) {
|
||||||
return PyUnicode_FromFormat("key: %d native_key: %d", key, native_key);
|
return PyUnicode_FromFormat("0x%x", native_key);
|
||||||
}
|
}
|
||||||
return Py_BuildValue("z", glfwGetKeyName(key, native_key));
|
return Py_BuildValue("z", glfwGetKeyName(key, native_key));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user