diff --git a/src/components/mail/listing.rs b/src/components/mail/listing.rs index 71b3132de..8f7f40a68 100644 --- a/src/components/mail/listing.rs +++ b/src/components/mail/listing.rs @@ -639,6 +639,19 @@ impl Component for Listing { self.component.set_dirty(true); return true; } + Action::ViewMailbox(idx) => { + if let Some((_, folder_hash)) = + self.accounts[self.cursor_pos.0].entries.get(*idx) + { + self.cursor_pos.1 = *idx; + self.component + .set_coordinates((self.cursor_pos.0, *folder_hash)); + self.set_dirty(true); + } else { + return true; + } + return true; + } _ => {} }, UIEvent::ChangeMode(UIMode::Normal) => { diff --git a/src/components/mail/listing/compact.rs b/src/components/mail/listing/compact.rs index 1c1c7ef07..b2beb2a30 100644 --- a/src/components/mail/listing/compact.rs +++ b/src/components/mail/listing/compact.rs @@ -1353,19 +1353,6 @@ impl Component for CompactListing { return true; } UIEvent::Action(ref action) => match action { - Action::ViewMailbox(idx) => { - if context.accounts[self.cursor_pos.0] - .folders_order - .get(*idx) - .is_none() - { - return true; - } - self.filtered_selection.clear(); - self.new_cursor_pos.1 = *idx; - self.refresh_mailbox(context, false); - return true; - } Action::Listing(Filter(ref filter_term)) if !self.unfocused => { self.filter(filter_term, context); self.dirty = true; diff --git a/src/components/mail/listing/conversations.rs b/src/components/mail/listing/conversations.rs index 41448606c..fded17821 100644 --- a/src/components/mail/listing/conversations.rs +++ b/src/components/mail/listing/conversations.rs @@ -1290,19 +1290,6 @@ impl Component for ConversationsListing { self.dirty = true; } UIEvent::Action(ref action) => match action { - Action::ViewMailbox(idx) => { - if context.accounts[self.cursor_pos.0] - .folders_order - .get(*idx) - .is_none() - { - return true; - } - self.set_coordinates((self.new_cursor_pos.0, *idx)); - self.refresh_mailbox(context, false); - return true; - } - Action::Listing(Filter(ref filter_term)) if !self.unfocused => { self.filter(filter_term, context); self.dirty = true; diff --git a/src/components/mail/listing/plain.rs b/src/components/mail/listing/plain.rs index 62b95a2e0..2b88b026e 100644 --- a/src/components/mail/listing/plain.rs +++ b/src/components/mail/listing/plain.rs @@ -1180,26 +1180,10 @@ impl Component for PlainListing { self.refresh_mailbox(context, false); return true; } - UIEvent::Action(ref action) => match action { - Action::ViewMailbox(idx) => { - if context.accounts[self.cursor_pos.0] - .folders_order - .get(*idx) - .is_none() - { - return true; - } - self.filtered_selection.clear(); - self.new_cursor_pos.1 = *idx; - self.refresh_mailbox(context, false); - return true; - } - Action::Listing(Filter(ref filter_term)) if !self.unfocused => { - self.filter(filter_term, context); - self.dirty = true; - } - _ => {} - }, + UIEvent::Action(Action::Listing(Filter(ref filter_term))) if !self.unfocused => { + self.filter(filter_term, context); + self.dirty = true; + } _ => {} } false diff --git a/src/components/mail/listing/thread.rs b/src/components/mail/listing/thread.rs index 97fb18bc3..da085f9e9 100644 --- a/src/components/mail/listing/thread.rs +++ b/src/components/mail/listing/thread.rs @@ -661,12 +661,6 @@ impl Component for ThreadListing { self.dirty = true; } UIEvent::Action(ref action) => match action { - Action::ViewMailbox(idx_m) => { - self.new_cursor_pos.1 = *idx_m; - self.dirty = true; - self.refresh_mailbox(context, false); - return true; - } Action::SubSort(field, order) => { debug!("SubSort {:?} , {:?}", field, order); self.subsort = (*field, *order);