Browse Source

When initial connection fails, Login dialog was not reopened (regression by ea24ee34)

Source commit: f01a899fbd642b29d64f67fb237f2d5433c9cdbf
Martin Prikryl 6 years ago
parent
commit
f3d511f41a

+ 13 - 8
source/windows/TerminalManager.cpp

@@ -416,19 +416,24 @@ bool __fastcall TTerminalManager::ConnectActiveTerminalImpl(bool Reopen)
 
   if (Action == tpFree)
   {
-    if (ActiveTerminal->Permanent)
-    {
-      DisconnectActiveTerminal();
-    }
-    else
-    {
-      FreeActiveTerminal();
-    }
+    DisconnectActiveTerminalIfPermanentFreeOtherwise();
   }
 
   return Result;
 }
 //---------------------------------------------------------------------------
+void __fastcall TTerminalManager::DisconnectActiveTerminalIfPermanentFreeOtherwise()
+{
+  if (ActiveTerminal->Permanent)
+  {
+    DisconnectActiveTerminal();
+  }
+  else
+  {
+    FreeActiveTerminal();
+  }
+}
+//---------------------------------------------------------------------------
 bool __fastcall TTerminalManager::ConnectActiveTerminal()
 {
   ActiveTerminal->CollectUsage();

+ 1 - 0
source/windows/TerminalManager.h

@@ -49,6 +49,7 @@ public:
   TManagedTerminal * __fastcall NewTerminals(TList * DataList);
   virtual void __fastcall FreeTerminal(TTerminal * Terminal);
   void __fastcall Move(TTerminal * Source, TTerminal * Target);
+  void __fastcall DisconnectActiveTerminalIfPermanentFreeOtherwise();
   void __fastcall DisconnectActiveTerminal();
   void __fastcall ReconnectActiveTerminal();
   void __fastcall FreeActiveTerminal();

+ 1 - 1
source/windows/UserInterface.cpp

@@ -355,7 +355,7 @@ void __fastcall ShowExtendedExceptionEx(TTerminal * Terminal,
     {
       if (ForActiveTerminal)
       {
-        Manager->DisconnectActiveTerminal();
+        Manager->DisconnectActiveTerminalIfPermanentFreeOtherwise();
       }
     }
   }