summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2019-06-01 12:09:03 -0400
committerJiayi Zhao <jeff.no.zhao@gmail.com>2019-06-01 12:10:20 -0400
commitda20212f32c8b43400d0aec2af39376651f32b9d (patch)
tree648fb4d4db28428961b336e25d837b3c797acbf6
parentbfb110a7c6a23692d6ffeca616aa5ca070869797 (diff)
fix issue with refreshing after paste
-rw-r--r--src/run.rs25
-rw-r--r--src/textfield.rs7
2 files changed, 19 insertions, 13 deletions
diff --git a/src/run.rs b/src/run.rs
index 299c96c..f756346 100644
--- a/src/run.rs
+++ b/src/run.rs
@@ -47,6 +47,19 @@ fn recurse_get_keycommand(keymap: &JoshutoCommandMapping) -> Option<&Box<Joshuto
}
}
+fn reload_tab(
+ index: usize,
+ context: &mut JoshutoContext,
+ view: &JoshutoView,
+) -> Result<(), std::io::Error> {
+ ReloadDirList::reload(index, context, view)?;
+ if index == context.curr_tab_index {
+ let dirty_tab = &mut context.tabs[index];
+ dirty_tab.refresh(view, &context.config_t);
+ }
+ Ok(())
+}
+
fn join_thread(
context: &mut JoshutoContext,
thread: FileOperationThread,
@@ -63,18 +76,10 @@ fn join_thread(
}
Ok(_) => {
if tab_src < context.tabs.len() {
- ReloadDirList::reload(tab_src, context, view)?;
- if tab_src == context.curr_tab_index {
- let dirty_tab = &mut context.tabs[tab_src];
- dirty_tab.refresh(view, &context.config_t);
- }
+ reload_tab(tab_src, context, view)?;
}
if tab_dest != tab_src && tab_dest < context.tabs.len() {
- ReloadDirList::reload(tab_dest, context, view)?;
- if tab_src == context.curr_tab_index {
- let dirty_tab = &mut context.tabs[tab_dest];
- dirty_tab.refresh(view, &context.config_t);
- }
+ reload_tab(tab_dest, context, view)?;
}
}
}
diff --git a/src/textfield.rs b/src/textfield.rs
index 55b3a92..ba20176 100644
--- a/src/textfield.rs
+++ b/src/textfield.rs
@@ -114,9 +114,10 @@ impl<'a> JoshutoTextField<'a> {
completion_tracker.take();
}
} else if ch == ncurses::KEY_BACKSPACE
- || ch == 127
- || ch == 9
- || ch == KEYMAP_T.backspace {
+ || ch == 127
+ || ch == 9
+ || ch == KEYMAP_T.backspace
+ {
if line_buffer.backspace(1) {
let pos = line_buffer.pos();
curr_pos = unicode_width::UnicodeWidthStr::width(&line_buffer.as_str()[..pos]);