summaryrefslogtreecommitdiff
path: root/UMain.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-10-04 14:20:43 +0200
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-10-04 14:20:43 +0200
commit3ecc07595f41f436430291fb2299dd540c01f292 (patch)
treed2786c6f6a79d7271d4c2ee453f7d2e22e1648ae /UMain.pas
parentd437236479bcd911e9f2215670299f6abc49206b (diff)
downloadtuxcmd-3ecc07595f41f436430291fb2299dd540c01f292.tar.xz
Store the correct parent engine when opening new connection over existing one
Fixes crashes on tab duplication and program exit
Diffstat (limited to 'UMain.pas')
-rw-r--r--UMain.pas4
1 files changed, 4 insertions, 0 deletions
diff --git a/UMain.pas b/UMain.pas
index b78bbe6..e08eb10 100644
--- a/UMain.pas
+++ b/UMain.pas
@@ -6227,6 +6227,8 @@ begin
WriteConnections; // Save connection manager data
if b and (FConnectionManager.ConnectedEngine <> nil) then begin
+ while FConnectionManager.ConnectedEngine.ParentEngine is TVFSEngine do
+ FConnectionManager.ConnectedEngine.ParentEngine := FConnectionManager.ConnectedEngine.ParentEngine.ParentEngine;
if FConnectionManager.SourcePanelEngine is TVFSEngine then CloseVFS(LeftLastFocused, True);
if LeftLastFocused then LeftPanelEngine := FConnectionManager.ConnectedEngine
else RightPanelEngine := FConnectionManager.ConnectedEngine;
@@ -6252,6 +6254,8 @@ begin
WriteConnections; // Save connection manager data
if b and (FQuickConnect.ConnectedEngine <> nil) then begin
+ while FQuickConnect.ConnectedEngine.ParentEngine is TVFSEngine do
+ FQuickConnect.ConnectedEngine.ParentEngine := FQuickConnect.ConnectedEngine.ParentEngine.ParentEngine;
if FQuickConnect.SourcePanelEngine is TVFSEngine then CloseVFS(LeftLastFocused, True);
if LeftLastFocused then LeftPanelEngine := FQuickConnect.ConnectedEngine
else RightPanelEngine := FQuickConnect.ConnectedEngine;