diff options
| author | Riley Beckett <rbeckettvt@gmail.com> | 2025-10-27 16:06:44 -0400 |
|---|---|---|
| committer | Riley Beckett <rbeckettvt@gmail.com> | 2025-10-27 16:06:44 -0400 |
| commit | c99280755915e8b0a997cffc671708a5d8bfa1cf (patch) | |
| tree | 01db1a107b7fa95cbc8f981001afd14d15174d73 | |
| parent | 77c11183c22d640939cd8a6a7588329a5879c64c (diff) | |
fix segfault & dont render when nothing has changed
| -rw-r--r-- | input_field.c | 12 | ||||
| -rw-r--r-- | main.c | 2 | ||||
| -rw-r--r-- | registry.c | 3 |
3 files changed, 12 insertions, 5 deletions
diff --git a/input_field.c b/input_field.c index dc62503..9eded28 100644 --- a/input_field.c +++ b/input_field.c @@ -30,11 +30,17 @@ void filter_items(client_state* state) { array_add(state->filtered_items, (item_display_t){ .item = i }); } } - if (array_size(state->input_buffer)) qsort(state->filtered_items, array_size(state->filtered_items), sizeof(item_display_t), compare); + if (array_size(state->input_buffer)) { + qsort(state->filtered_items, array_size(state->filtered_items), sizeof(item_display_t), compare); + } // select item - if (array_size(state->filtered_items) > 0) state->selected_filtered_item = 0; - else state->selected_filtered_item = -1; + if (array_size(state->filtered_items) > 0) { + state->selected_filtered_item = 0; + } + else { + state->selected_filtered_item = -1; + } // update layout update_layout(state); @@ -38,6 +38,7 @@ int main(int argc, char* argv[]) { state.running = true; state.input_buffer = array_new(char, 0); state.filtered_items = array_new(item_display_t, 0); + state.selected_filtered_item = -1; // check locale setlocale(LC_ALL, ""); @@ -98,6 +99,7 @@ int main(int argc, char* argv[]) { while (state.running) { poll_events(&state); render_frame(&state); + wl_display_dispatch(state.display); } // cleanup (of course) @@ -33,11 +33,10 @@ void global(void *data, struct wl_registry *wl_registry, uint32_t name, const ch state->cursor_shape_manager = wl_registry_bind( wl_registry, name, &wp_cursor_shape_manager_v1_interface, 1); } else if (!strcmp(interface, wl_data_device_manager_interface.name)) { - state->data_device_manager = wl_registry_bind(wl_registry, name, &wl_data_device_manager_interface, 3); + state->data_device_manager = wl_registry_bind(wl_registry, name, &wl_data_device_manager_interface, 2); } else { } - } void global_remove(void *data, struct wl_registry *wl_registry, uint32_t name) { |
