Uncheck "Configuration > Explorer Panel settings > Display > Save on exit"? That is behavior I want to keep; I see it as one of the most useful features. I want my tab state to be saved and reloaded on program stop/start, and this works fine until it gets the user stuck in tab sessions. It seems like the current design expects users to operate only within tab sessions or not use them at all. The bug is that, in the scenario I previously described as #2, the user becomes stuck within tab sessions with no way out other than to modify settings or delete the current TabSession.
Personal use cases aside, a user who clicks "Close Current TabSession" certainly wants any result other than the same TabSession being reloaded.
Also, even when opening and closing a TabSession without exiting the program, the previous state that is restored appears to be the set of tabs that was open the last time the program was closed. This could be a very old set of tabs.
I'm proposing that "Close Current TabSession" restores the tabs a user had open when they entered the TabSession experience (I imagine those tabs would have to be persisted separately from the autoload config). This corrects the issue where the UI becomes unable to truly close the current TabSession, and I believe improves the behavior in the case where the program is not restarted.
The user is returned to their previous tab state when opening the program. I think a typical user would similarly expect to be returned to their previous tab state when closing a TabSession. There are two cases where this does not happen:
- User opens program. Autoload opens their previous tabs (tabs open: 5).
- User does additional navigation (tabs open: 7).
- User enters TabSession.
- User closes TabSession.
- Only 5 tabs are restored (the tabs from step 1). The most recent set of tabs from step 2 is lost. Proposal: load tabs from step 2.
- User opens program. Autoload opens their previous tabs (tabs open: 5).
- User does additional navigation (tabs open: 7).
- User enters TabSession.
- User restarts program.
- User closes TabSession.
- The same TabSession is restored. "Close Current TabSession" has effectively failed from a user perspective, and all previous state has been lost. Proposal: load tabs from step 2.