Browse Source

FIX: FsContentGetDefaultView - restore previous view mode

Alexander Koblov 3 years ago
parent
commit
dcac75bb8e
2 changed files with 11 additions and 3 deletions
  1. 10 3
      src/fmain.pas
  2. 1 0
      src/ufileviewnotebook.pas

+ 10 - 3
src/fmain.pas

@@ -4388,13 +4388,20 @@ begin
     begin
       Page.BackupViewMode:= EmptyStr;
       // Restore previous file view type
-      if Page.BackupViewClass = TColumnsFileView then
-        TColumnsFileView(Page.FileView).SetColumnSet(Page.BackupColumnSet)
+      if (FileView is Page.BackupViewClass) then
+      begin
+        if (FileView is TColumnsFileView) then
+          TColumnsFileView(FileView).SetColumnSet(Page.BackupColumnSet)
+      end
       else begin
         Result:= False;
         Page.RemoveComponent(FileView);
         Application.QueueAsyncCall(@FileViewFreeAsync, PtrInt(FileView));
-        FileView:= Page.BackupViewClass.Create(Page, FileView);
+        if Page.BackupViewClass <> TColumnsFileView then
+          FileView:= Page.BackupViewClass.Create(Page, FileView)
+        else begin
+          FileView:= TColumnsFileView.Create(Page, FileView, Page.BackupColumnSet);
+        end;
         if Assigned(Page.OnChangeFileView) then Page.OnChangeFileView(FileView);
       end;
       if RestoreFocus then Page.FileView.SetFocus;

+ 1 - 0
src/ufileviewnotebook.pas

@@ -352,6 +352,7 @@ begin
   if Assigned(aFileView) then
   begin
     aFileView.Parent := Self;
+    BackupViewMode := EmptyStr;
     if Assigned(FOnChangeFileView) then
       FOnChangeFileView(aFileView);
   end;