Browse Source

Bug fix: When connecting disconnected session the directory might be loaded twice

Source commit: d5f71b032995b4533e8a6c34b34b7ca795cf4299
Martin Prikryl 4 years ago
parent
commit
6c45fb1167
1 changed files with 5 additions and 1 deletions
  1. 5 1
      source/core/Terminal.cpp

+ 5 - 1
source/core/Terminal.cpp

@@ -1672,7 +1672,11 @@ void __fastcall TTerminal::Reopen(int Params)
   {
     FReadCurrentDirectoryPending = false;
     FReadDirectoryPending = false;
-    FSuspendTransaction = true;
+    // Not sure why we are suspeding the transaction in the first place,
+    // but definitelly when set while connecting auto loaded workspace session, it causes loading the directory twice.
+    // (when reconnecting lost connection, it's usually prevented by cached directory)
+    // Preventing that by suspeding transaction only when there is one.
+    FSuspendTransaction = (FInTransaction > 0);
     FExceptionOnFail = 0;
     // typically, we avoid reading directory, when there is operation ongoing,
     // for file list which may reference files from current directory