浏览代码

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

Source commit: d5f71b032995b4533e8a6c34b34b7ca795cf4299
Martin Prikryl 4 年之前
父节点
当前提交
6c45fb1167
共有 1 个文件被更改,包括 5 次插入1 次删除
  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