From cffdba52c92783dc9bc508d76fd1bf3807971e4b Mon Sep 17 00:00:00 2001 From: BDisp Date: Wed, 1 Jul 2020 00:31:32 +0100 Subject: [PATCH 1/3] Added and Removing tests. --- UnitTests/ViewTests.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/UnitTests/ViewTests.cs b/UnitTests/ViewTests.cs index 43473921b..4ba0c1c4f 100644 --- a/UnitTests/ViewTests.cs +++ b/UnitTests/ViewTests.cs @@ -135,5 +135,26 @@ namespace Terminal.Gui { sub2.Width = Dim.Width (sub2); Assert.Throws (() => root.LayoutSubviews ()); } + + [Fact] + public void Added_Removing () + { + var v = new View (new Rect (0, 0, 10, 24)); + var t = new View (); + + v.Added += (View e) => { + Assert.True (v.SuperView == e); + }; + + v.Removing += (View e) => { + Assert.True (v.SuperView == e); + }; + + t.Add (v); + Assert.True (t.Subviews.Count == 1); + + t.Remove (v); + Assert.True (t.Subviews.Count == 0); + } } } From e8972f43addafca5f7b1a2b1be1a5ec7bdd576af Mon Sep 17 00:00:00 2001 From: BDisp Date: Mon, 6 Jul 2020 00:38:07 +0100 Subject: [PATCH 2/3] Changed to removed because it is safer to perform actions after deletion. --- Terminal.Gui/Core/View.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Terminal.Gui/Core/View.cs b/Terminal.Gui/Core/View.cs index be569d2e9..ba408a7b5 100644 --- a/Terminal.Gui/Core/View.cs +++ b/Terminal.Gui/Core/View.cs @@ -132,7 +132,7 @@ namespace Terminal.Gui { /// /// Event fired when a subview is being removed from this view. /// - public Action Removing; + public Action Removed; /// /// Event fired when the view gets focus. @@ -607,12 +607,12 @@ namespace Terminal.Gui { if (view == null || subviews == null) return; - OnRemoving (view); SetNeedsLayout (); SetNeedsDisplay (); var touched = view.Frame; subviews.Remove (view); view.container = null; + OnRemoved (view); if (subviews.Count < 1) this.CanFocus = false; @@ -958,9 +958,9 @@ namespace Terminal.Gui { /// Method invoked when a subview is being removed from this view. /// /// The subview being removed. - public virtual void OnRemoving (View view) + public virtual void OnRemoved (View view) { - view.Removing?.Invoke (this); + view.Removed?.Invoke (this); } /// From e0c6067b3914845a684cd79266b4b38c6c34227f Mon Sep 17 00:00:00 2001 From: BDisp Date: Mon, 6 Jul 2020 00:45:56 +0100 Subject: [PATCH 3/3] Fixing the Removed test. --- UnitTests/ViewTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UnitTests/ViewTests.cs b/UnitTests/ViewTests.cs index 4ba0c1c4f..4adb55374 100644 --- a/UnitTests/ViewTests.cs +++ b/UnitTests/ViewTests.cs @@ -146,8 +146,8 @@ namespace Terminal.Gui { Assert.True (v.SuperView == e); }; - v.Removing += (View e) => { - Assert.True (v.SuperView == e); + v.Removed += (View e) => { + Assert.True (v.SuperView == null); }; t.Add (v);