Bladeren bron

FIX: Bug [0000850] "CTRL-right on ZIP archive doesn't set parent directory correctly"

Alexander Koblov 11 jaren geleden
bovenliggende
commit
a80ef960c2
2 gewijzigde bestanden met toevoegingen van 18 en 1 verwijderingen
  1. 5 0
      src/filesources/ufilesourceutil.pas
  2. 13 1
      src/umaincommands.pas

+ 5 - 0
src/filesources/ufilesourceutil.pas

@@ -224,6 +224,11 @@ function ChooseArchive(aFileView: TFileView; aFile: TFile; bForce: Boolean): Boo
 var
   FileSource: IFileSource;
 begin
+  if not mbCompareFileNames(aFileView.CurrentPath, aFile.Path) then
+  begin
+    SetFileSystemPath(aFileView, aFile.Path);
+  end;
+
   // Check if there is a ArchiveFileSource for possible archive.
   FileSource := GetArchiveFileSource(aFileView.FileSource, aFile, EmptyStr, bForce);
 

+ 13 - 1
src/umaincommands.pas

@@ -795,13 +795,25 @@ procedure TMainCommands.cm_OpenDirInNewTab(const Params: array of string);
       NewPage.MakeActive;
   end;
 
+  procedure OpenArchive(const aFile: TFile);
+  var
+    NewPage: TFileViewPage;
+  begin
+    NewPage := FrmMain.ActiveNotebook.NewPage(FrmMain.ActiveFrame);
+    ChooseArchive(NewPage.FileView, aFile);
+    if tb_open_new_in_foreground in gDirTabOptions then
+      NewPage.MakeActive;
+  end;
+
 var
   aFile: TFile;
 begin
   aFile := FrmMain.ActiveFrame.CloneActiveFile;
   if Assigned(aFile) then
   try
-    if aFile.IsNameValid and (aFile.IsDirectory or aFile.IsLinkToDirectory) then
+    if FileIsArchive(aFile.FullPath) then
+      OpenArchive(aFile)
+    else if aFile.IsNameValid and (aFile.IsDirectory or aFile.IsLinkToDirectory) then
       OpenTab(aFile.FullPath)
     else
       OpenTab(FrmMain.ActiveFrame.CurrentPath);