From 8671e37e073a0565931dad4971a654640787738e Mon Sep 17 00:00:00 2001 From: n7800 <14154601-n7800@users.noreply.gitlab.com> Date: Sun, 19 Jan 2025 08:06:34 +0500 Subject: [PATCH] IDE/Options: Remember the window layout when closing via the close button in the window caption --- ide/ideoptionsdlg.lfm | 1 + ide/ideoptionsdlg.pas | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ide/ideoptionsdlg.lfm b/ide/ideoptionsdlg.lfm index 70270b7c6c..eaa1d48a1c 100644 --- a/ide/ideoptionsdlg.lfm +++ b/ide/ideoptionsdlg.lfm @@ -8,6 +8,7 @@ inherited IDEOptionsDialog: TIDEOptionsDialog Constraints.MinWidth = 500 KeyPreview = True Position = poWorkAreaCenter + OnClose = FormClose OnKeyDown = FormKeyDown OnShow = FormShow object ButtonPanel: TButtonPanel[0] diff --git a/ide/ideoptionsdlg.pas b/ide/ideoptionsdlg.pas index c9590b2993..84fcda4d52 100644 --- a/ide/ideoptionsdlg.pas +++ b/ide/ideoptionsdlg.pas @@ -86,6 +86,7 @@ type procedure CategoryTreeExpanded(Sender: TObject; Node: TTreeNode); procedure CategoryTreeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); function FilterEditFilterItem(ItemData: Pointer; out Done: Boolean): Boolean; + procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormShow(Sender: TObject); procedure HelpButtonClick(Sender: TObject); @@ -358,6 +359,12 @@ begin Result:=OptEditor.ContainsTextInCaption(FilterEdit.Filter); end; +procedure TIDEOptionsDialog.FormClose(Sender: TObject; var CloseAction: TCloseAction); +begin + if WindowState <> wsMaximized then + IDEDialogLayoutList.SaveLayout(self); +end; + procedure TIDEOptionsDialog.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin // dialog @@ -431,12 +438,8 @@ end; procedure TIDEOptionsDialog.OkButtonClick(Sender: TObject); begin - if not Apply then - Exit; - // close - if WindowState <> wsMaximized then - IDEDialogLayoutList.SaveLayout(Self); - ModalResult := mrOk; + if Apply then + ModalResult := mrOk; end; procedure TIDEOptionsDialog.CancelButtonClick(Sender: TObject); @@ -446,8 +449,6 @@ begin // ToDo: Set build target only for project options. MainBuildBoss.SetBuildTargetProject1; // close - if WindowState <> wsMaximized then - IDEDialogLayoutList.SaveLayout(Self); ModalResult := mrCancel; end;