mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-16 05:34:00 -04:00
input: track num lock state
This commit is contained in:
parent
7dcc885a7a
commit
4f0d057243
2 changed files with 6 additions and 0 deletions
4
input.c
4
input.c
|
|
@ -512,6 +512,7 @@ keyboard_keymap(void *data, struct wl_keyboard *wl_keyboard,
|
||||||
seat->kbd.mod_alt = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_ALT) ;
|
seat->kbd.mod_alt = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_ALT) ;
|
||||||
seat->kbd.mod_ctrl = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_CTRL);
|
seat->kbd.mod_ctrl = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_CTRL);
|
||||||
seat->kbd.mod_meta = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_LOGO);
|
seat->kbd.mod_meta = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_LOGO);
|
||||||
|
seat->kbd.mod_num = xkb_keymap_mod_get_index(seat->kbd.xkb_keymap, XKB_MOD_NAME_NUM);
|
||||||
|
|
||||||
seat->kbd.key_arrow_up = xkb_keymap_key_by_name(seat->kbd.xkb_keymap, "UP");
|
seat->kbd.key_arrow_up = xkb_keymap_key_by_name(seat->kbd.xkb_keymap, "UP");
|
||||||
seat->kbd.key_arrow_down = xkb_keymap_key_by_name(seat->kbd.xkb_keymap, "DOWN");
|
seat->kbd.key_arrow_down = xkb_keymap_key_by_name(seat->kbd.xkb_keymap, "DOWN");
|
||||||
|
|
@ -614,6 +615,7 @@ keyboard_leave(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial,
|
||||||
seat->kbd.alt = false;
|
seat->kbd.alt = false;
|
||||||
seat->kbd.ctrl = false;
|
seat->kbd.ctrl = false;
|
||||||
seat->kbd.meta = false;
|
seat->kbd.meta = false;
|
||||||
|
seat->kbd.num = false;
|
||||||
if (seat->kbd.xkb_compose_state != NULL)
|
if (seat->kbd.xkb_compose_state != NULL)
|
||||||
xkb_compose_state_reset(seat->kbd.xkb_compose_state);
|
xkb_compose_state_reset(seat->kbd.xkb_compose_state);
|
||||||
|
|
||||||
|
|
@ -1029,6 +1031,8 @@ keyboard_modifiers(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial,
|
||||||
seat->kbd.xkb_state, seat->kbd.mod_ctrl, XKB_STATE_MODS_DEPRESSED);
|
seat->kbd.xkb_state, seat->kbd.mod_ctrl, XKB_STATE_MODS_DEPRESSED);
|
||||||
seat->kbd.meta = xkb_state_mod_index_is_active(
|
seat->kbd.meta = xkb_state_mod_index_is_active(
|
||||||
seat->kbd.xkb_state, seat->kbd.mod_meta, XKB_STATE_MODS_DEPRESSED);
|
seat->kbd.xkb_state, seat->kbd.mod_meta, XKB_STATE_MODS_DEPRESSED);
|
||||||
|
seat->kbd.num = xkb_state_mod_index_is_active(
|
||||||
|
seat->kbd.xkb_state, seat->kbd.mod_num, XKB_STATE_MODS_LOCKED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (seat->kbd_focus && seat->kbd_focus->active_surface == TERM_SURF_GRID)
|
if (seat->kbd_focus && seat->kbd_focus->active_surface == TERM_SURF_GRID)
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,7 @@ struct seat {
|
||||||
xkb_mod_index_t mod_alt;
|
xkb_mod_index_t mod_alt;
|
||||||
xkb_mod_index_t mod_ctrl;
|
xkb_mod_index_t mod_ctrl;
|
||||||
xkb_mod_index_t mod_meta;
|
xkb_mod_index_t mod_meta;
|
||||||
|
xkb_mod_index_t mod_num;
|
||||||
|
|
||||||
xkb_keycode_t key_arrow_up;
|
xkb_keycode_t key_arrow_up;
|
||||||
xkb_keycode_t key_arrow_down;
|
xkb_keycode_t key_arrow_down;
|
||||||
|
|
@ -157,6 +158,7 @@ struct seat {
|
||||||
bool alt;
|
bool alt;
|
||||||
bool ctrl;
|
bool ctrl;
|
||||||
bool meta;
|
bool meta;
|
||||||
|
bool num;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
tll(struct key_binding_normal) key;
|
tll(struct key_binding_normal) key;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue