input: kitty: only emit CSIs for Caps- and Num-Lock when they aren’t modifiers

This commit is contained in:
Daniel Eklöf 2021-11-21 11:59:28 +01:00
parent 8fb641a7ed
commit a08494a766
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

16
input.c
View file

@ -1207,9 +1207,7 @@ kitty_kbd_protocol(struct seat *seat, struct terminal *term,
case XKB_KEY_Page_Down: key = 6; final = '~'; break;
case XKB_KEY_Home: key = 1; final = 'H'; break;
case XKB_KEY_End: key = 1; final = 'F'; break;
//case XKB_KEY_Caps_Lock: key = 57358; final = 'u'; break;
case XKB_KEY_Scroll_Lock: key = 57359; final = 'u'; break;
//case XKB_KEY_Num_Lock: key = 57360; final = 'u'; break;
case XKB_KEY_Print: key = 57361; final = 'u'; break;
case XKB_KEY_Pause: key = 57362; final = 'u'; break;
case XKB_KEY_Menu: key = 57363; final = 'u'; break;
@ -1278,6 +1276,20 @@ kitty_kbd_protocol(struct seat *seat, struct terminal *term,
case XKB_KEY_KP_Delete: key = 57426; final = 'u'; break;
case XKB_KEY_KP_Begin: key = 1; final = 'E'; break;
case XKB_KEY_Caps_Lock:
if (seat->kbd.mod_caps == XKB_MOD_INVALID) {
key = 57358;
final = 'u';
}
break;
case XKB_KEY_Num_Lock:
if (seat->kbd.mod_num == XKB_MOD_INVALID) {
key = 57360;
final = 'u';
}
break;
default:
if (count > 0) {
if (effective == 0) {