aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorverdant <im@verdant.ee>2026-07-28 20:29:23 +0800
committerverdant <im@verdant.ee>2026-07-28 20:44:30 +0800
commit1b5a26716b7d9050334d8ded58fe2c6ae7fe0143 (patch)
tree8e50d8c492add5195edde7321256ea2c626bdf90 /src
parentfe4f50f407c388dc0e6e77f4bb191f88058d5305 (diff)
downloadsf-1b5a26716b7d9050334d8ded58fe2c6ae7fe0143.tar.gz
sf-1b5a26716b7d9050334d8ded58fe2c6ae7fe0143.zip
Reset view state only on successful directory load
Diffstat (limited to 'src')
-rw-r--r--src/fm.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/fm.c b/src/fm.c
index db4aed8..a112e13 100644
--- a/src/fm.c
+++ b/src/fm.c
@@ -371,12 +371,13 @@ fm_cd_up(fm_info *info)
file_list *new_list = fm_getdir(info->cur, info->cwd);
if (new_list) {
info->cur = new_list;
+ info->cursor = 0;
+ info->top = 0;
+ info->bottom = info->windows[FM_PANE_LEFT]->height;
+ need_redraw = true;
+ } else {
+ return;
}
-
- info->cursor = 0;
- info->top = 0;
- info->bottom = info->windows[FM_PANE_LEFT]->height;
- need_redraw = true;
}
void
@@ -410,11 +411,13 @@ fm_cd_down(fm_info *info)
file_list *new_list = fm_getdir(info->cur, info->cwd);
if (new_list) {
info->cur = new_list;
+ info->cursor = 0;
+ info->top = 0;
+ need_redraw = true;
+ } else {
+ free(next_dir);
+ return;
}
-
- info->cursor = 0;
- info->top = 0;
- need_redraw = true;
}
free(next_dir);