aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiley Beckett <rbeckettvt@gmail.com>2025-10-27 16:06:44 -0400
committerRiley Beckett <rbeckettvt@gmail.com>2025-10-27 16:06:44 -0400
commitc99280755915e8b0a997cffc671708a5d8bfa1cf (patch)
tree01db1a107b7fa95cbc8f981001afd14d15174d73
parent77c11183c22d640939cd8a6a7588329a5879c64c (diff)
fix segfault & dont render when nothing has changed
-rw-r--r--input_field.c12
-rw-r--r--main.c2
-rw-r--r--registry.c3
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);
diff --git a/main.c b/main.c
index ce9022d..70b50e7 100644
--- a/main.c
+++ b/main.c
@@ -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)
diff --git a/registry.c b/registry.c
index df41580..e61b6a0 100644
--- a/registry.c
+++ b/registry.c
@@ -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) {