diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2019-06-01 12:09:03 -0400 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2019-06-01 12:10:20 -0400 |
commit | da20212f32c8b43400d0aec2af39376651f32b9d (patch) | |
tree | 648fb4d4db28428961b336e25d837b3c797acbf6 | |
parent | bfb110a7c6a23692d6ffeca616aa5ca070869797 (diff) |
fix issue with refreshing after paste
-rw-r--r-- | src/run.rs | 25 | ||||
-rw-r--r-- | src/textfield.rs | 7 |
2 files changed, 19 insertions, 13 deletions
@@ -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]); |