No, the problem isn't the main window. The problem is that the session tab itself is closed, along with any internal editor windows associated with that session. More importantly, the problem is that you can't access the window at all if there's a connection issue on any session.
Since this seems not clear to you, I'll give a couple of example use cases.
Case 1: Suppose you connect to a server that's hosted on a private internet connection with a dynamic IP. You open a few files to edit in the internal editor. While working, the server has a momentary internet loss, and gets a new IP. You're quickly able to determine the new IP, and want to reconnect. However, WinSCP is determined to retry to connecting to the same IP as before.
In a perfect world, WinSCP would allow you to edit the connection settings, but keep all the other session details intact. But let's assume that's farfetched.
In a moderate world, you'd be able to tell WinSCP to stop trying to connect, transforming the session into "offline mode". You'd still be able to view the file list on the last open directory, and work with the open internal editors, but you wouldn't be able to change folders or save the open files.
In a minimal usability world, you'd be able to ignore the reconnection window, click on the internal editors, use Ctrl+A and Ctrl+C to copy the unsaved content, and paste it in an external editor. You can then close the session, open a new session, re-open the files, and paste the data from the external editor back into the internal editor.
In the actual world, WinSCP will not allow you to interact with any part of it except for two buttons: "Reconnect" and "Ok". "Reconnect" will continue to fail, and basically keep you stuck in the same loop. "Ok" will close the session tab, close all the internal editor windows opened from that session, and basically cause you to lose any unsaved edits. It will also switch to another tab, which, if it also has connection issues, will re-pop the reconnection window without even redrawing the window in the background or actually telling you which session it belongs to.
Use case 2: You have two sessions open. For security reasons, you decided not to save the session password of the second session in memory. But that's okay, because that password is saved on a file available from the first session. You had a network hiccup which made both sessions disconnect. The first one reconnects without issue, but the second one pops up a password prompt.
To get the password, you have to go to the other session, to look at the file containing the password. But WinSCP will not allow you to switch tabs, let alone open a file, while it's waiting for a password prompt. You have only two options: Input the password (which you can't access), or close the session. So in actuality, you only have one option.
At least in this case, if remembering the password for the first session was just a formality (as opposed to, say, the password having been entered by someone else who already went home), you can open a new instance of WinSCP, and connect to that session from there. But it's really telling when you need to open a new instance of your multi-tab program. It means your tabs aren't doing what tabs are supposed to do.
These are just 2 of numerous use cases I've encountered over the years. And they all boil down to the same problem: Once the connection dialog pops up, the entirety of WinSCP becomes inaccessible. Heck, let's go for one more, one that should be super trivial:
Use case 3: You've been told to connect to a server. For security reasons, the connection details were placed as a text file on another server to which you already have access. You go to that server, double click the text file, which opens it in the internal editor, and then hit "New Session". You now want to copy and paste the connection details from that text file to the "New Session" connection dialog.
Wanna know what actually happens? Just test it. Open any text file in the internal editor, then hit "New Session", then click on the internal editor's window. Once you try that, it should become very obvious what the problem is.
Reply with quote