aboutsummaryrefslogtreecommitdiffstats
path: root/src/e_events.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/e_events.go')
-rw-r--r--src/e_events.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/e_events.go b/src/e_events.go
index 8cf99ff..791c219 100644
--- a/src/e_events.go
+++ b/src/e_events.go
@@ -168,6 +168,12 @@ func e_fold_dir(data *HardData, item *ItemsNode) {
}
func e_reload_data(data *HardData) {
+ if data.ui.s != nil {
+ if err := data.ui.s.Suspend(); err != nil {
+ c_error_mode("screen", err, &data.ui)
+ return
+ }
+ }
tmp_name := ""
tmp_parent_path := ""
if data.litems.curr != nil {
@@ -179,7 +185,6 @@ func e_reload_data(data *HardData) {
tmp_parent_path = data.litems.curr.Host.parent.path()
}
}
- // FIX: dirty visual bug rename dir mkdir
fmt.Println("reloading config...")
conf_dir := c_get_conf_dir(&data.load_err)
if len(conf_dir) == 0 {
@@ -199,6 +204,7 @@ func e_reload_data(data *HardData) {
fmt.Println("reloading data...")
data.data_dir = c_get_data_dir(&data.ui)
if len(data.data_dir) == 0 {
+ c_resume_or_die(&data.ui)
return
}
data.ldirs, data.litems, data.load_err = i_load_data(data.data_dir, data.opts,
@@ -206,6 +212,7 @@ func e_reload_data(data *HardData) {
data.folds = make(map[*DirsNode]*ItemsList)
if tmp_name == "" {
data.litems.curr = data.litems.head
+ c_resume_or_die(&data.ui)
return
}
for curr := data.litems.head; curr != nil; curr = curr.next {
@@ -213,6 +220,7 @@ func e_reload_data(data *HardData) {
if curr.Dirs.Name == tmp_name {
if curr.Dirs.Parent.path() == tmp_parent_path {
data.litems.curr = curr
+ c_resume_or_die(&data.ui)
return
}
}
@@ -220,12 +228,14 @@ func e_reload_data(data *HardData) {
if curr.Host.filename == tmp_name {
if curr.Host.parent.path() == tmp_parent_path {
data.litems.curr = curr
+ c_resume_or_die(&data.ui)
return
}
}
}
}
data.litems.curr = data.litems.head
+ c_resume_or_die(&data.ui)
}
func e_delete_dir(data *HardData) error {