From 2afa6a39629fb331d284afa454b9aa50e7f0adcf Mon Sep 17 00:00:00 2001 From: Jack Jamison Date: Fri, 17 Oct 2025 23:12:12 -0400 Subject: basic selection --- input_field.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'input_field.c') diff --git a/input_field.c b/input_field.c index 75a0cbc..0fbaca6 100644 --- a/input_field.c +++ b/input_field.c @@ -19,6 +19,10 @@ void filter_items(client_state* state) { array_add(state->filtered_items, i); } } + + // select item + if (array_size(state->filtered_items) > 0) state->selected_filtered_item = 0; + else state->selected_filtered_item = -1; } void update_text_buffer(client_state* state) { @@ -39,6 +43,18 @@ bool type_key(client_state* state, xkb_keysym_t keysym) { return false; } + // select next + if (keysym == XKB_KEY_n && ctrl) { + state->selected_filtered_item = MIN(state->selected_filtered_item + 1, array_size(state->filtered_items) - 1); + return true; + } + + // select previous + if (keysym == XKB_KEY_p && ctrl) { + state->selected_filtered_item = MAX(state->selected_filtered_item - 1, 0); + return true; + } + // submit line if (keysym == XKB_KEY_Return || keysym == XKB_KEY_KP_Enter) { submit_line(state); -- cgit v1.2.3