ui: clear all state in Listing::set_coordinates
If a listing lists search results, ie when "filtering" with a filter term, it sets up its state in filtered_selection, filtered_order etc. set_coordinates() should reset that state.embed
parent
d32f0982a9
commit
ea3f47fa44
|
@ -77,10 +77,16 @@ impl ListingTrait for CompactListing {
|
||||||
fn coordinates(&self) -> (usize, usize, Option<EnvelopeHash>) {
|
fn coordinates(&self) -> (usize, usize, Option<EnvelopeHash>) {
|
||||||
(self.new_cursor_pos.0, self.new_cursor_pos.1, None)
|
(self.new_cursor_pos.0, self.new_cursor_pos.1, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
||||||
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
||||||
self.unfocused = false;
|
self.unfocused = false;
|
||||||
|
self.filtered_selection.clear();
|
||||||
|
self.filtered_order.clear();
|
||||||
|
self.filter_term.clear();
|
||||||
|
self.row_updates.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn highlight_line(&mut self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
|
fn highlight_line(&mut self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
|
||||||
if self.length == 0 {
|
if self.length == 0 {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -111,6 +111,10 @@ impl ListingTrait for ConversationsListing {
|
||||||
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
||||||
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
||||||
self.unfocused = false;
|
self.unfocused = false;
|
||||||
|
self.filtered_selection.clear();
|
||||||
|
self.filtered_order.clear();
|
||||||
|
self.filter_term.clear();
|
||||||
|
self.row_updates.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn highlight_line(&mut self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
|
fn highlight_line(&mut self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
|
||||||
|
|
|
@ -92,6 +92,8 @@ impl ListingTrait for PlainListing {
|
||||||
}
|
}
|
||||||
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
||||||
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
||||||
|
self.unfocused = false;
|
||||||
|
self.local_collection.clear();
|
||||||
}
|
}
|
||||||
fn highlight_line(&mut self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
|
fn highlight_line(&mut self, grid: &mut CellBuffer, area: Area, idx: usize, context: &Context) {
|
||||||
let account = &context.accounts[self.cursor_pos.0];
|
let account = &context.accounts[self.cursor_pos.0];
|
||||||
|
|
|
@ -58,6 +58,9 @@ impl ListingTrait for ThreadListing {
|
||||||
}
|
}
|
||||||
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
fn set_coordinates(&mut self, coordinates: (usize, usize, Option<EnvelopeHash>)) {
|
||||||
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
self.new_cursor_pos = (coordinates.0, coordinates.1, 0);
|
||||||
|
self.unfocused = false;
|
||||||
|
self.locations.clear();
|
||||||
|
self.initialised = false;
|
||||||
}
|
}
|
||||||
fn draw_list(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context) {
|
fn draw_list(&mut self, grid: &mut CellBuffer, area: Area, context: &mut Context) {
|
||||||
if self.cursor_pos.1 != self.new_cursor_pos.1 || self.cursor_pos.0 != self.new_cursor_pos.0
|
if self.cursor_pos.1 != self.new_cursor_pos.1 || self.cursor_pos.0 != self.new_cursor_pos.0
|
||||||
|
|
Loading…
Reference in New Issue