ui: prevent some unnecessary redraws

embed
Manos Pitsidianakis 2019-06-19 19:39:23 +03:00
parent 9026fb866e
commit 06862c1484
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
2 changed files with 5 additions and 3 deletions

View File

@ -123,6 +123,7 @@ impl Component for Listing {
grid[(mid, i)].set_bg(Color::Default);
}
}
self.dirty = false;
context
.dirty_areas
.push_back(((mid, get_y(upper_left)), (mid, get_y(bottom_right))));

View File

@ -699,7 +699,6 @@ impl Component for StatusBar {
);
/* don't autocomplete for less than 3 characters */
if self.ex_buffer.as_str().split_graphemes().len() <= 2 {
self.container.set_dirty();
return;
}
let suggestions: Vec<String> = self
@ -713,8 +712,10 @@ impl Component for StatusBar {
}
})
.collect();
if suggestions.is_empty() {
/* redraw self.container because we might have got ridden of an autocomplete
if suggestions.is_empty() && !self.auto_complete.suggestions().is_empty() {
self.auto_complete.set_suggestions(suggestions);
self.auto_complete.set_cursor(0);
/* redraw self.container because we have got ridden of an autocomplete
* box, and it must be drawn over */
self.container.set_dirty();
return;