From 93c70aa07a26fc817b03089c8c5240b9ffbe4e63 Mon Sep 17 00:00:00 2001 From: nova Date: Sun, 10 May 2026 19:45:04 +0200 Subject: [PATCH] adjustments as a result of asynic rendering --- interactions.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/interactions.c b/interactions.c index 6729969..c50f8cc 100644 --- a/interactions.c +++ b/interactions.c @@ -73,7 +73,6 @@ void user_interactions() { memset(input, 0, INPUT_BUFFER_SIZE); input_pass = 0; } - status |= STATUS_UPDATE_SCREEN_GENERIC; } @@ -98,8 +97,10 @@ void user_interactions() { for (i = 0; i < binding_count; i++) { if (strncmp(input + number_length, key_binding[i].key, cmp_len) == 0) { if (strcmp(input + number_length, key_binding[i].key) == 0) { + pthread_mutex_lock(&mutex_mid); func_ptr = key_binding[i].func; func_ptr(parsed_input_number, i); + pthread_mutex_unlock(&mutex_mid); timeout(SETTINGS_CURSES_TIMEOUT); /* blocking timeout of getch() */ } else { @@ -172,21 +173,17 @@ void select_all(){ TODO; } void move_down(unsigned long passes){ - if (mid_dir.current_file + passes >= mid_dir.file_list + mid_dir.file_count - 1) { - mid_dir.current_file = mid_dir.file_list + mid_dir.file_count - 1; - } else { - mid_dir.current_file = mid_dir.current_file + passes; - } + + /*bounds checking happens within thread_mid*/ + mid_dir.current_file += passes; status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_GENERIC); - pthread_cond_signal(&cond_mid); } void move_up(unsigned long passes){ - if (mid_dir.current_file - passes <= mid_dir.file_list) { - mid_dir.current_file = mid_dir.file_list; - } else { - mid_dir.current_file = mid_dir.current_file - passes; - } + + /*bounds checking happens within thread_mid*/ + mid_dir.current_file -= passes; + status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_GENERIC); } void move_left(unsigned long passes){ @@ -259,9 +256,11 @@ void toggle_selection(){ } void jump_bottom(){ mid_dir.current_file = mid_dir.file_list + mid_dir.file_count - 1; + status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_GENERIC); } void jump_top(){ mid_dir.current_file = mid_dir.file_list; + status |= (STATUS_RUN_BACKEND | STATUS_UPDATE_SCREEN_GENERIC); } void open_with(){ TODO;