1
0
Эх сурвалжийг харах

Bug fix: When reattaching edited file to re-connection session, the file was always attached to the current session instead of the possibly non-active re-connected session

Source commit: 549914d12f07734c4eac79bc5b65a6977aeb20f7
Martin Prikryl 3 жил өмнө
parent
commit
b1455f0283

+ 4 - 4
source/forms/CustomScpExplorer.cpp

@@ -3874,7 +3874,7 @@ void __fastcall TCustomScpExplorerForm::ExecutedFileChanged(
       UnicodeString EditInactiveSessionReopenRejectedCounter = L"EditInactiveSessionReopenRejected";
       if (Data->Terminal == NULL)
       {
-        TTerminal * SameSiteTerminal = Manager->FindActiveTerminalForSite(Data->SessionData);
+        TManagedTerminal * SameSiteTerminal = Manager->FindActiveTerminalForSite(Data->SessionData);
         if (SameSiteTerminal != NULL)
         {
           UnicodeString Message =
@@ -3882,9 +3882,9 @@ void __fastcall TCustomScpExplorerForm::ExecutedFileChanged(
               (FileNameOnly, Data->SessionName, FileNameOnly));
           if (MessageDialog(Message, qtConfirmation, qaOK | qaCancel) == qaOK)
           {
-            Data->Terminal = Terminal;
-            Data->Queue = Manager->FindQueueForTerminal(Terminal);
-            Data->SessionName = Terminal->SessionData->SessionName;
+            Data->Terminal = SameSiteTerminal;
+            Data->Queue = Manager->FindQueueForTerminal(SameSiteTerminal);
+            Data->SessionName = SameSiteTerminal->SessionData->SessionName;
             // We might also overwrite session data
             Configuration->Usage->Inc(EditInactiveSessionReopenAcceptedCounter);
           }

+ 3 - 3
source/windows/TerminalManager.cpp

@@ -1874,12 +1874,12 @@ bool __fastcall TTerminalManager::IsActiveTerminalForSite(TTerminal * Terminal,
   return Result;
 }
 //---------------------------------------------------------------------------
-TTerminal * __fastcall TTerminalManager::FindActiveTerminalForSite(TSessionData * Data)
+TManagedTerminal * __fastcall TTerminalManager::FindActiveTerminalForSite(TSessionData * Data)
 {
-  TTerminal * Result = NULL;
+  TManagedTerminal * Result = NULL;
   for (int Index = 0; (Result == NULL) && (Index < Count); Index++)
   {
-    TTerminal * Terminal = Sessions[Index];
+    TManagedTerminal * Terminal = Sessions[Index];
     if (IsActiveTerminalForSite(Terminal, Data))
     {
       Result = Terminal;

+ 1 - 1
source/windows/TerminalManager.h

@@ -76,7 +76,7 @@ public:
   void __fastcall SaveWorkspace(TList * DataList);
   void __fastcall QueueStatusUpdated();
   bool __fastcall IsActiveTerminalForSite(TTerminal * Terminal, TSessionData * Data);
-  TTerminal * __fastcall FindActiveTerminalForSite(TSessionData * Data);
+  TManagedTerminal * __fastcall FindActiveTerminalForSite(TSessionData * Data);
   TTerminalQueue * __fastcall FindQueueForTerminal(TTerminal * Terminal);
   bool __fastcall UploadPublicKey(TTerminal * Terminal, TSessionData * Data, UnicodeString & FileName);
   UnicodeString GetPathForSessionTabName(const UnicodeString & Result);