diff options
| author | verdant <im@verdant.ee> | 2026-07-23 18:58:40 +0800 |
|---|---|---|
| committer | verdant <im@verdant.ee> | 2026-07-23 18:58:40 +0800 |
| commit | 80ac2501501f83f7c64a5591b2075468a5fab6b5 (patch) | |
| tree | 9ab6b4865d349106f1163cc48db548f413a6cc99 | |
| parent | b23e2bfe015d779beab188e260dac145296352a6 (diff) | |
| download | sf-80ac2501501f83f7c64a5591b2075468a5fab6b5.tar.gz sf-80ac2501501f83f7c64a5591b2075468a5fab6b5.zip | |
Add scroll state and redraw tracking to fm_info
| -rw-r--r-- | fm.c | 6 | ||||
| -rw-r--r-- | fm.h | 12 |
2 files changed, 16 insertions, 2 deletions
@@ -42,6 +42,12 @@ static fm_info *fm_w_init(terminal *t) f->fm_r->start_x = fm_r_startx; f->fm_r->win = fm_r->win; + f->top = 0; + f->bottom = fm_h - 1; + log_write(LOG_INFO, "t->windows[i]->height = %d", + t->windows[i]->height); + f->margin_bottom = 3; + f->needs_redraw = 1; return f; } void fm_getdir(fm_info *f); @@ -2,6 +2,7 @@ #define SF_FM_H #include <limits.h> +#include <linux/limits.h> #include <ncurses.h> #include "wm.h" @@ -15,11 +16,18 @@ typedef struct { file_item *items; int count; int cap; +} file_list; + +typedef struct { + file_list *cur; + file_list *next; int selected_idx; window *fm_l, *fm_r; - char **cur_contents; - char **next_dir_contents; + int got_next_dir; + char got_dir[PATH_MAX]; char cwd[PATH_MAX]; + int top, bottom, margin_bottom; + int needs_redraw; } fm_info; void fm_getdir(fm_info *f); |
