소스 검색

FIX: Bug [0001220] Swapping the panels (ctrl+U) loses the file selection

Alexander Koblov 9 년 전
부모
커밋
c0e4a1046c
1개의 변경된 파일15개의 추가작업 그리고 4개의 파일을 삭제
  1. 15 4
      src/umaincommands.pas

+ 15 - 4
src/umaincommands.pas

@@ -925,11 +925,22 @@ end;
 //------------------------------------------------------
 procedure TMainCommands.cm_Exchange(const Params: array of string);
 var
-  sDir: String;
+  ActiveView, NotActiveView: TFileView;
 begin
-  sDir:= FrmMain.ActiveFrame.CurrentPath;
-  FrmMain.ActiveFrame.CurrentPath:= FrmMain.NotActiveFrame.CurrentPath;
-  FrmMain.NotActiveFrame.CurrentPath:= sDir;
+  ActiveView:= frmMain.ActiveFrame;
+  NotActiveView:= frmMain.NotActiveFrame;
+  with frmMain do
+  begin
+    ActiveNotebook.ActivePage.RemoveComponent(ActiveView);
+    NotActiveNotebook.ActivePage.RemoveComponent(NotActiveView);
+
+    ActiveNotebook.ActivePage.FileView:= NotActiveView;
+    NotActiveNotebook.ActivePage.FileView:= ActiveView;
+
+    ActiveNotebook.ActivePage.InsertComponent(NotActiveView);
+    NotActiveNotebook.ActivePage.InsertComponent(ActiveView);
+  end;
+  NotActiveView.SetFocus;
 end;
 
 procedure TMainCommands.cm_ExecuteToolbarItem(const Params: array of string);