From 7a8442d9ea3ba1b7a2245334fe0babcab95292e8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 7 Oct 2025 15:23:39 +0000 Subject: [PATCH] Handle FrmOptions visibility and window lifecycle Co-authored-by: Kvarkas <3611964+Kvarkas@users.noreply.github.com> --- mRemoteNG/UI/Window/OptionsWindow.cs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/mRemoteNG/UI/Window/OptionsWindow.cs b/mRemoteNG/UI/Window/OptionsWindow.cs index 62c473dd3..e8f4411ac 100644 --- a/mRemoteNG/UI/Window/OptionsWindow.cs +++ b/mRemoteNG/UI/Window/OptionsWindow.cs @@ -60,9 +60,30 @@ namespace mRemoteNG.UI.Window _optionsForm.TopLevel = false; _optionsForm.FormBorderStyle = FormBorderStyle.None; _optionsForm.Dock = DockStyle.Fill; + _optionsForm.VisibleChanged += OptionsForm_VisibleChanged; Controls.Add(_optionsForm); - _optionsForm.Show(); } + _optionsForm.Show(); + } + + private void OptionsForm_VisibleChanged(object sender, EventArgs e) + { + // When the embedded FrmOptions is hidden (OK/Cancel clicked), close this window + if (_optionsForm != null && !_optionsForm.Visible) + { + this.Close(); + } + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + // Detach the FrmOptions form so it can be reused + if (_optionsForm != null) + { + _optionsForm.VisibleChanged -= OptionsForm_VisibleChanged; + Controls.Remove(_optionsForm); + } + base.OnFormClosing(e); } public void SetActivatedPage(string pageName)