From d65ee9253d81d9d497a6d7f35566f3bcb7e0fcea Mon Sep 17 00:00:00 2001 From: rabite Date: Wed, 20 Mar 2019 14:55:17 +0100 Subject: only rerender changed line --- src/listview.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/listview.rs b/src/listview.rs index d655050..5a42308 100644 --- a/src/listview.rs +++ b/src/listview.rs @@ -297,17 +297,23 @@ impl ListView } fn multi_select_file(&mut self) { - let file = self.selected_file_mut(); - file.toggle_selection(); + self.selected_file_mut().toggle_selection(); + + let selection = self.get_selection(); + let line = self.render_line(self.selected_file()); + self.buffer[selection] = line; + self.move_down(); - self.core.set_dirty(); - self.refresh().log(); } fn toggle_tag(&mut self) -> HResult<()> { self.selected_file_mut().toggle_tag()?; + + let selection = self.get_selection(); + let line = self.render_line(self.selected_file()); + self.buffer[selection] = line; + self.move_down(); - self.core.set_dirty(); Ok(()) } -- cgit v1.2.3