diff options
author | Hiltjo Posthuma <hiltjo@codemadness.org> | 2021-08-09 18:39:25 +0200 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2021-08-09 18:39:25 +0200 |
commit | cd2133a5f66b42f992a9a1b92bbbce11dc26b941 (patch) | |
tree | db6a079f1711e73e1e1785c19c30cf9289877311 | |
parent | c585e8e498ec6f9c423ab8ea07cf853ee5b05fbe (diff) | |
download | dmenu-cd2133a5f66b42f992a9a1b92bbbce11dc26b941.tar.gz dmenu-cd2133a5f66b42f992a9a1b92bbbce11dc26b941.tar.bz2 dmenu-cd2133a5f66b42f992a9a1b92bbbce11dc26b941.zip |
add support for more keypad keys
The keypad Enter key was already supported. On some keyboard layouts like my
laptop the page-up and page-down key is more comfortable to use.
This adds a few lines but no complexity.
-rw-r--r-- | dmenu.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -360,9 +360,11 @@ keypress(XKeyEvent *ev) utf8, utf8, win, CurrentTime); return; case XK_Left: + case XK_KP_Left: movewordedge(-1); goto draw; case XK_Right: + case XK_KP_Right: movewordedge(+1); goto draw; case XK_Return: @@ -400,6 +402,7 @@ insert: insert(buf, len); break; case XK_Delete: + case XK_KP_Delete: if (text[cursor] == '\0') return; cursor = nextrune(+1); @@ -410,6 +413,7 @@ insert: insert(NULL, nextrune(-1) - cursor); break; case XK_End: + case XK_KP_End: if (text[cursor] != '\0') { cursor = strlen(text); break; @@ -429,6 +433,7 @@ insert: cleanup(); exit(1); case XK_Home: + case XK_KP_Home: if (sel == matches) { cursor = 0; break; @@ -437,6 +442,7 @@ insert: calcoffsets(); break; case XK_Left: + case XK_KP_Left: if (cursor > 0 && (!sel || !sel->left || lines > 0)) { cursor = nextrune(-1); break; @@ -445,18 +451,21 @@ insert: return; /* fallthrough */ case XK_Up: + case XK_KP_Up: if (sel && sel->left && (sel = sel->left)->right == curr) { curr = prev; calcoffsets(); } break; case XK_Next: + case XK_KP_Next: if (!next) return; sel = curr = next; calcoffsets(); break; case XK_Prior: + case XK_KP_Prior: if (!prev) return; sel = curr = prev; @@ -473,6 +482,7 @@ insert: sel->out = 1; break; case XK_Right: + case XK_KP_Right: if (text[cursor] != '\0') { cursor = nextrune(+1); break; @@ -481,6 +491,7 @@ insert: return; /* fallthrough */ case XK_Down: + case XK_KP_Down: if (sel && sel->right && (sel = sel->right) == next) { curr = next; calcoffsets(); |