mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-20 05:33:47 -04:00
keymap: use same lookup table for Tab and ISO_Left_Tab
With XKB, Shift+Tab maps to XKB_KEY_ISO_Left_Tab, not XKB_Key_Tab. Previously, we had two different lookup tables for the two. The tab table was correctly populated, while the ISO-left tab wasn’t. As a result, all Shift+Tab combos (except Shift+Tab itself) was wrong, and resulted in the same escape sequence as Shift+Tab. Fix by using the same table for both tab and ISO-left tab. Closes #210
This commit is contained in:
parent
ca150fbdd5
commit
3a3616af96
3 changed files with 5 additions and 7 deletions
|
|
@ -35,6 +35,8 @@
|
||||||
|
|
||||||
* Resize very slow when window is hidden
|
* Resize very slow when window is hidden
|
||||||
(https://codeberg.org/dnkl/foot/issues/190).
|
(https://codeberg.org/dnkl/foot/issues/190).
|
||||||
|
* Key mappings for key combinations with `shift`+`tab`
|
||||||
|
(https://codeberg.org/dnkl/foot/issues/210).
|
||||||
|
|
||||||
|
|
||||||
## 1.5.3
|
## 1.5.3
|
||||||
|
|
|
||||||
4
input.c
4
input.c
|
|
@ -641,8 +641,8 @@ keymap_data_for_sym(xkb_keysym_t sym, size_t *count)
|
||||||
switch (sym) {
|
switch (sym) {
|
||||||
case XKB_KEY_Escape: *count = ALEN(key_escape); return key_escape;
|
case XKB_KEY_Escape: *count = ALEN(key_escape); return key_escape;
|
||||||
case XKB_KEY_Return: *count = ALEN(key_return); return key_return;
|
case XKB_KEY_Return: *count = ALEN(key_return); return key_return;
|
||||||
case XKB_KEY_Tab: *count = ALEN(key_tab); return key_tab;
|
case XKB_KEY_Tab: /* FALLTHROUGH */
|
||||||
case XKB_KEY_ISO_Left_Tab: *count = ALEN(key_backtab); return key_backtab;
|
case XKB_KEY_ISO_Left_Tab: *count = ALEN(key_tab); return key_tab;
|
||||||
case XKB_KEY_BackSpace: *count = ALEN(key_backspace); return key_backspace;
|
case XKB_KEY_BackSpace: *count = ALEN(key_backspace); return key_backspace;
|
||||||
case XKB_KEY_Up: *count = ALEN(key_up); return key_up;
|
case XKB_KEY_Up: *count = ALEN(key_up); return key_up;
|
||||||
case XKB_KEY_Down: *count = ALEN(key_down); return key_down;
|
case XKB_KEY_Down: *count = ALEN(key_down); return key_down;
|
||||||
|
|
|
||||||
6
keymap.h
6
keymap.h
|
|
@ -45,7 +45,7 @@ static const struct key_data key_return[] = {
|
||||||
|
|
||||||
/* Tab isn't covered by the regular "modifyOtherKeys" handling */
|
/* Tab isn't covered by the regular "modifyOtherKeys" handling */
|
||||||
static const struct key_data key_tab[] = {
|
static const struct key_data key_tab[] = {
|
||||||
{MOD_SHIFT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;2;9~"},
|
{MOD_SHIFT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[Z"},
|
||||||
{MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;3;9~"},
|
{MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;3;9~"},
|
||||||
{MOD_SHIFT | MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;4;9~"},
|
{MOD_SHIFT | MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;4;9~"},
|
||||||
{MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;5;9~"},
|
{MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[27;5;9~"},
|
||||||
|
|
@ -63,10 +63,6 @@ static const struct key_data key_tab[] = {
|
||||||
{MOD_ANY, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\t"},
|
{MOD_ANY, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\t"},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct key_data key_backtab[] = {
|
|
||||||
{MOD_ANY, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033[Z"},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct key_data key_backspace[] = {
|
static const struct key_data key_backspace[] = {
|
||||||
{MOD_SHIFT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
{MOD_SHIFT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
||||||
{MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
{MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue