diff --git a/interactions.c b/interactions.c index 006a064..fe7a6e7 100644 --- a/interactions.c +++ b/interactions.c @@ -176,6 +176,15 @@ void select_all(){ } status |= (STATUS_RUN_BACKEND); } +void dir_changed(){ + unsigned long i; + + for(i = 0; i < mid_dir.file_count; i++) { + mid_dir.file_list[i].status = 0; + } + + status |= (STATUS_RUN_BACKEND | STATUS_RELOAD_DIRECTORY ); +} void move_down(unsigned long passes){ /*bounds checking happens within thread_mid*/ @@ -197,6 +206,7 @@ void move_left(unsigned long passes){ /* TODO(2025-07-09T00:30:05) fix */ FAIL("move_left", "unhandled error of chdir"); } + dir_changed(); } status |= (STATUS_RUN_BACKEND | STATUS_RELOAD_DIRECTORY); @@ -208,6 +218,7 @@ void move_right(){ /* TODO(2026-05-05T20:12:14) fix */ FAIL("move_right", "unhandled error of chdir"); } + dir_changed(); } else if (mid_dir.current_file->file_type & FILE_TYPE_EXEC) { } else { char *mime = get_mimetype(mid_dir.current_file); diff --git a/threading.c b/threading.c index a10a993..46364b4 100644 --- a/threading.c +++ b/threading.c @@ -88,6 +88,11 @@ void *thread_mid(){ mid_dir.current_file = NULL; } + unsigned long i; + for(i = 0; i < mid_dir.file_count && i < tmp.file_count; i++) { + mid_dir.file_list[i].status = tmp.file_list[i].status; + } + }