diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-22 21:16:37 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-22 21:16:37 +0100 |
| commit | 4f6ee2b6abed1de775dea65412fdc30fcffaea98 (patch) | |
| tree | 885bd70f93b1e0919a841bc78a1a5b40fb2f5311 | |
| parent | be8ab03c38ac94ea55507c26a88f7c716b3c461d (diff) | |
add selection move
| -rw-r--r-- | dmenu-wl.c | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -415,6 +415,18 @@ handle_keyboard_event() if (client.keys.state == WL_KEYBOARD_KEY_STATE_PRESSED) { switch (client.keys.sym) { + case XKB_KEY_Down: + if (options.selection->next_match) + options.selection = options.selection->next_match; + break; + case XKB_KEY_Up: + if (options.selection->previous_match) + options.selection = options.selection->previous_match; + break; + case XKB_KEY_Left: + break; + case XKB_KEY_Right: + break; case XKB_KEY_KP_Enter: /* fallthrough */ case XKB_KEY_Return: fputs(options.selection ? options.selection->name: input_field, stdout); @@ -424,9 +436,8 @@ handle_keyboard_event() running = 0; break; case XKB_KEY_Tab: - if (options.selection) { + if (options.selection) strncpy(input_field, options.selection->name, MAX_LINE_LENGTH); - } break; case XKB_KEY_BackSpace: if (strlen(input_field)) @@ -442,7 +453,8 @@ handle_keyboard_event() } if (running) { - generate_matches(); + if (genmatch) + generate_matches(); draw_dmenu(active_monitor); } } |