summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-03-20 14:55:17 +0100
committerrabite <rabite@posteo.de>2019-03-20 14:55:17 +0100
commitd65ee9253d81d9d497a6d7f35566f3bcb7e0fcea (patch)
tree625ac24c92d806784d0df265c40cef755b2e7971
parent9a711bbe96d753d0dbf70007adc0ff89823aa9ad (diff)
only rerender changed line
-rw-r--r--src/listview.rs16
1 files changed, 11 insertions, 5 deletions
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<Files>
}
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(())
}