From 94ac462350194307112d9ae0f32a7846299e3d3a Mon Sep 17 00:00:00 2001 From: Tigger Kindel Date: Thu, 30 Mar 2023 08:41:52 -0600 Subject: [PATCH] All tests pass --- Terminal.Gui/View/View.cs | 19 +++++++++++++++---- UnitTests/ViewTests/ViewTests.cs | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Terminal.Gui/View/View.cs b/Terminal.Gui/View/View.cs index e53cb188f..f1cde43c6 100644 --- a/Terminal.Gui/View/View.cs +++ b/Terminal.Gui/View/View.cs @@ -2424,19 +2424,30 @@ namespace Terminal.Gui { get => base.Enabled; set { if (base.Enabled != value) { - if (value) if (SuperView == null || SuperView?.Enabled == true) base.Enabled = value; - else base.Enabled = value; - if (!value && HasFocus) SetHasFocus (false, this); + if (value) { + if (SuperView == null || SuperView?.Enabled == true) { + base.Enabled = value; + } + } else { + base.Enabled = value; + } + if (!value && HasFocus) { + SetHasFocus (false, this); + } OnEnabledChanged (); SetNeedsDisplay (); - if (subviews != null) foreach (var view in subviews) if (!value) { + if (subviews != null) { + foreach (var view in subviews) { + if (!value) { view.oldEnabled = view.Enabled; view.Enabled = false; } else { view.Enabled = view.oldEnabled; view.addingView = false; } + } + } } } } diff --git a/UnitTests/ViewTests/ViewTests.cs b/UnitTests/ViewTests/ViewTests.cs index f5a5ab03c..35591826f 100644 --- a/UnitTests/ViewTests/ViewTests.cs +++ b/UnitTests/ViewTests/ViewTests.cs @@ -1263,6 +1263,7 @@ namespace Terminal.Gui.ViewTests { Assert.True (view.CanFocus); Assert.True (view.HasFocus); + wasClicked = false; view.Enabled = false; view.ProcessKey (new KeyEvent (Key.Enter, null)); Assert.False (wasClicked);