diff --git a/Terminal.Gui/Core/View.cs b/Terminal.Gui/Core/View.cs index 6a9592657..f21334fe2 100644 --- a/Terminal.Gui/Core/View.cs +++ b/Terminal.Gui/Core/View.cs @@ -748,6 +748,9 @@ namespace Terminal.Gui { view.SetNeedsDisplay (); } OnRemoved (view); + if (focused == view) { + focused = null; + } } void PerformActionForSubview (View subview, Action action) @@ -1882,9 +1885,6 @@ namespace Terminal.Gui { Remove (subview); subview.Dispose (); } - if (Application.Top.focused == this) { - Application.Top.focused = null; - } base.Dispose (disposing); } diff --git a/Terminal.Gui/Views/Menu.cs b/Terminal.Gui/Views/Menu.cs index 1c0484ab7..4f623fdcb 100644 --- a/Terminal.Gui/Views/Menu.cs +++ b/Terminal.Gui/Views/Menu.cs @@ -1019,11 +1019,13 @@ namespace Terminal.Gui { LastFocused = lastFocused; lastFocused = null; if (LastFocused != null) { + CanFocus = false; if (!reopen) { selected = -1; } LastFocused.SuperView?.SetFocus (LastFocused); } else { + CanFocus = true; SuperView.SetFocus (this); PositionCursor (); }