diff --git a/NEWS b/NEWS index 6a532889c..fff8da0ae 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ 3.0.1 (2016-MM-DD) ------------------ +Enhancements +- improved scrolling behavior when deleting a single message (#3489) + Bug fixes - fixed blank calendar view when selecting "Descending Order" in the sort menu - show active user's default email address instead of system email address (#3473) diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index c2aff02eb..30506f9b1 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -192,6 +192,7 @@ if (index >= 0 && index < this.$messages.length) { message = this.$messages[index]; + this.$lastVisibleIndex = Math.max(0, index - 3); // Magic number is NUM_EXTRA from virtual-repeater.js if (this.$loadMessage(message.uid)) return message; diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index 3b5fba978..87d675247 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -133,7 +133,10 @@ try { if (nextMessage) { state.go('mail.account.mailbox.message', { messageId: nextMessage.uid }); - mailbox.$topIndex = nextIndex; + if (nextIndex < mailbox.$topIndex) + mailbox.$topIndex = nextIndex; + else if (nextIndex > mailbox.$lastVisibleIndex) + mailbox.$topIndex = nextIndex - (mailbox.$lastVisibleIndex - mailbox.$topIndex); } else { state.go('mail.account.mailbox');