diff --git a/Terminal.Gui/Core/View.cs b/Terminal.Gui/Core/View.cs index 7cafe2ad8..0fcd73b07 100644 --- a/Terminal.Gui/Core/View.cs +++ b/Terminal.Gui/Core/View.cs @@ -3080,17 +3080,12 @@ namespace Terminal.Gui { /// The view. /// The method name. /// if it's overridden, otherwise. - public static bool IsOverridden (View view, string method) + public bool IsOverridden (View view, string method) { - MethodInfo m = view.GetType ().GetMethod (method, - BindingFlags.Instance - | BindingFlags.Public - | BindingFlags.NonPublic - | BindingFlags.DeclaredOnly); - if (m == null) { - return false; - } - return m.GetBaseDefinition ().DeclaringType != m.DeclaringType; + Type t = view.GetType (); + MethodInfo m = t.GetMethod (method); + + return (m.DeclaringType == t || m.ReflectedType == t) && m.GetBaseDefinition ().DeclaringType == typeof (Responder); } } } diff --git a/UnitTests/ViewTests.cs b/UnitTests/ViewTests.cs index 03969c4a7..e2a20e80b 100644 --- a/UnitTests/ViewTests.cs +++ b/UnitTests/ViewTests.cs @@ -4062,29 +4062,5 @@ This is a tes Assert.False (view.IsKeyPress); Assert.True (view.IsKeyUp); } - - [Fact, AutoInitShutdown] - public void IsOverridden_False_IfNotOverriden () - { - var view = new DerivedView () { Text = "DerivedView does not override MouseEvent", Width = 10, Height = 10 }; - - Assert.False (View.IsOverridden (view, "MouseEvent")); - - var view2 = new Button () { Text = "Button does not overrides OnKeyDown", Width = 10, Height = 10 }; - - Assert.False (View.IsOverridden (view2, "OnKeyDown")); - } - - [Fact, AutoInitShutdown] - public void IsOverridden_True_IfOverriden () - { - var view = new Button () { Text = "Button overrides MouseEvent", Width = 10, Height = 10 }; - - Assert.True (View.IsOverridden (view, "MouseEvent")); - - var view2 = new DerivedView () { Text = "DerivedView overrides OnKeyDown", Width = 10, Height = 10 }; - - Assert.True (View.IsOverridden (view2, "OnKeyDown")); - } } }