The interface displays lists of messages in pages between which the user can navigate with Move back and Move forward commands, like in a web browser. In general, retrieving a new set of results opens a new page, replacing the list of messages previously on screen. Other pages can be instantly displayed back on screen by moving through pages, back and forward.
This behavior is meant to navigate fast through lists of messages.
Example: a message currently on screen is from john.doe@domain.tld.
The user right clicks on the subject line and choose the
Last 10 messages from john.doe@domain.tld
command.
The program then opens a new page with the results.
The user wades through the results, and when done, comes back
to the previous page by issuing Move back.
The display and selection will then be restored as they were before
the Last 10 messages... command was issued.
The number of pages that are kept in memory is a configuration parameter named "msg_window_pages" and defaults to 5. It means that when a new page is opened while there are already five result pages in memory, the older page (number 1) is removed from the memory to get room for the new one. The page number 2 becomes number 1, 3 becomes 2, and so on.
When a new page is opened while there are other pages after it, the new page becomes the tail of the pages list, which means that the pages that were after can no longer be accessed with the Move forward command. This matches web browsers behavior.
A new window with an entirely new set of pages (initially blank) can be opened with the File/New window command. Different windows are manipulated completely independently from each other, except that when several windows show the same message, a change in that message should be visually propagated to all windows.