From 22525d40fb48661f86657151e35fdf9c95c4b45e Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Thu, 14 Sep 2023 15:08:44 +0300 Subject: [PATCH] mail/listing: go to end when pressing next/page down for the second time When navigating the sidebar menu, if you reach the last account entry and hit next account, nothing happens. This commit makes it so that you're pointed to the last mailbox instead. Signed-off-by: Manos Pitsidianakis --- meli/src/mail/listing.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/meli/src/mail/listing.rs b/meli/src/mail/listing.rs index 58df6abe..89ce4c64 100644 --- a/meli/src/mail/listing.rs +++ b/meli/src/mail/listing.rs @@ -1516,7 +1516,15 @@ impl Component for Listing { }; match k { k if shortcut!(k == shortcuts[Shortcuts::LISTING]["next_account"]) => { - if self.cursor_pos.account + amount < self.accounts.len() { + if self.cursor_pos.account + amount >= self.accounts.len() { + // Go to last mailbox. + self.cursor_pos.menu = MenuEntryCursor::Mailbox( + self.accounts[self.cursor_pos.account] + .entries + .len() + .saturating_sub(1), + ); + } else if self.cursor_pos.account + amount < self.accounts.len() { self.cursor_pos.account += amount; self.cursor_pos.menu = MenuEntryCursor::Mailbox(0); } else { @@ -2090,7 +2098,15 @@ impl Component for Listing { k if shortcut!(k == shortcuts[Shortcuts::LISTING]["next_account"]) || shortcut!(k == shortcuts[Shortcuts::LISTING]["next_page"]) => { - if self.menu_cursor_pos.account + amount < self.accounts.len() { + if self.menu_cursor_pos.account + amount >= self.accounts.len() { + // Go to last mailbox. + self.menu_cursor_pos.menu = MenuEntryCursor::Mailbox( + self.accounts[self.menu_cursor_pos.account] + .entries + .len() + .saturating_sub(1), + ); + } else if self.menu_cursor_pos.account + amount < self.accounts.len() { self.menu_cursor_pos.account += amount; self.menu_cursor_pos.menu = MenuEntryCursor::Mailbox(0); } else {