From c7d1e15cada0a84b30278476aada53bfd864a32a Mon Sep 17 00:00:00 2001 From: BDisp Date: Wed, 29 Sep 2021 22:22:53 +0100 Subject: [PATCH] Fixes #1467. AlternateForward/BackwardKey bypasses dialog modality (#1468) --- Terminal.Gui/Core/Toplevel.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Terminal.Gui/Core/Toplevel.cs b/Terminal.Gui/Core/Toplevel.cs index 2ce5084ea..8056d23cd 100644 --- a/Terminal.Gui/Core/Toplevel.cs +++ b/Terminal.Gui/Core/Toplevel.cs @@ -342,11 +342,12 @@ namespace Terminal.Gui { case Key.Tab | Key.CtrlMask: case Key key when key == Application.AlternateForwardKey: // Needed on Unix if (Application.MdiTop == null) { - Application.Top.FocusNext (); - if (Application.Top.Focused == null) { - Application.Top.FocusNext (); + var top = Modal ? this : Application.Top; + top.FocusNext (); + if (top.Focused == null) { + top.FocusNext (); } - Application.Top.SetNeedsDisplay (); + top.SetNeedsDisplay (); } else { MoveNext (); } @@ -354,11 +355,12 @@ namespace Terminal.Gui { case Key.Tab | Key.ShiftMask | Key.CtrlMask: case Key key when key == Application.AlternateBackwardKey: // Needed on Unix if (Application.MdiTop == null) { - Application.Top.FocusPrev (); - if (Application.Top.Focused == null) { - Application.Top.FocusPrev (); + var top = Modal ? this : Application.Top; + top.FocusPrev (); + if (top.Focused == null) { + top.FocusPrev (); } - Application.Top.SetNeedsDisplay (); + top.SetNeedsDisplay (); } else { MovePrevious (); }