From d13e4565d9ceb78199b26e797490be1e5b063822 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Mar 2026 12:05:21 +0000 Subject: [PATCH 1/2] Initial plan From 5057dce55359f37e18c0d3ddea5bf053076838f9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Mar 2026 12:24:27 +0000 Subject: [PATCH 2/2] Fix Dialog SchemeName reverting to Base; restore Dialog scheme when running Co-authored-by: tig <585482+tig@users.noreply.github.com> Agent-Logs-Url: https://github.com/gui-cs/Terminal.Gui/sessions/0ca8d90a-caee-43ac-bfbc-6e62aae4ed58 --- Terminal.Gui/Views/DialogTResult.cs | 8 ++++ .../Views/DialogTests.cs | 39 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/Terminal.Gui/Views/DialogTResult.cs b/Terminal.Gui/Views/DialogTResult.cs index 94f4d990ec..e18d73f658 100644 --- a/Terminal.Gui/Views/DialogTResult.cs +++ b/Terminal.Gui/Views/DialogTResult.cs @@ -354,6 +354,14 @@ private void SetStyle () { if (IsRunning) { + // When running, restore to Dialog scheme only if it was set to Base by SetStyle + // (i.e., the scheme was not explicitly overridden before running, e.g. by + // MessageBox.ErrorQuery which sets SchemeName = "Error" before calling app.Run). + if (SchemeName == SchemeManager.SchemesToSchemeName (Schemes.Base)) + { + SchemeName = SchemeManager.SchemesToSchemeName (Schemes.Dialog); + } + Arrangement |= ViewArrangement.Movable | ViewArrangement.Resizable | ViewArrangement.Overlapped; } else diff --git a/Tests/UnitTestsParallelizable/Views/DialogTests.cs b/Tests/UnitTestsParallelizable/Views/DialogTests.cs index 5c64f21083..aa1f553741 100644 --- a/Tests/UnitTestsParallelizable/Views/DialogTests.cs +++ b/Tests/UnitTestsParallelizable/Views/DialogTests.cs @@ -412,6 +412,45 @@ public void ShadowStyle_Can_Be_Changed () dialog.Dispose (); } + // Copilot + [Fact] + public void SchemeName_IsBase_WhenNotRunning () + { + // When a Dialog is not running, it should use the Base scheme (not Dialog) + Dialog dialog = new (); + + Assert.Equal (SchemeManager.SchemesToSchemeName (Schemes.Base), dialog.SchemeName); + + dialog.Dispose (); + } + + // Copilot + [Fact] + public void SchemeName_IsDialog_WhenRunning () + { + using IApplication app = Application.Create (); + app.Init (DriverRegistry.Names.ANSI); + + using Dialog dialog = new (); + + string? schemeNameWhileRunning = null; + + app.Iteration += AppOnIteration; + app.Run (dialog); + app.Iteration -= AppOnIteration; + + Assert.Equal (SchemeManager.SchemesToSchemeName (Schemes.Dialog), schemeNameWhileRunning); + + return; + + void AppOnIteration (object? sender, EventArgs e) + { + schemeNameWhileRunning = dialog.SchemeName; + app.Iteration -= AppOnIteration; + app.RequestStop (); + } + } + [Fact] public void Text_Property () {