Преглед на файлове

Fixed ScreenPosition in tests

Tig преди 9 месеца
родител
ревизия
923e5d1cf3

+ 6 - 1
Terminal.Gui/View/View.Command.cs

@@ -19,9 +19,14 @@ public partial class View // Command APIs
         AddCommand (Command.HotKey,
                     () =>
                     {
+                        if (RaiseHotKeyHandled () is true)
+                        {
+                            return true;
+                        }
+
                         SetFocus ();
 
-                        return RaiseHotKeyHandled ();
+                        return true;
                     });
 
         // Space or single-click - Raise Selected

+ 17 - 3
Terminal.Gui/Views/Label.cs

@@ -19,7 +19,7 @@
 ///         <see cref="View.Subviews"/>."
 ///     </para>
 /// </remarks>
-public class Label : View
+public class Label : View, IDesignable
 {
     /// <inheritdoc/>
     public Label ()
@@ -65,18 +65,32 @@ public class Label : View
 
     private bool? InvokeHotKeyOnNext (CommandContext context)
     {
+        if (RaiseHotKeyHandled () == true)
+        {
+            return true;
+        }
+
         if (CanFocus)
         {
-            return SetFocus ();
+            SetFocus ();
+
+            return true;
         }
 
         int me = SuperView?.Subviews.IndexOf (this) ?? -1;
 
         if (me != -1 && me < SuperView?.Subviews.Count - 1)
         {
-            SuperView?.Subviews [me + 1].InvokeCommand (Command.HotKey, context.Key, context.KeyBinding);
+            return SuperView?.Subviews [me + 1].InvokeCommand (Command.HotKey, context.Key, context.KeyBinding) == true;
         }
 
+        return false;
+    }
+
+    /// <inheritdoc/>
+    bool IDesignable.EnableForDesign ()
+    {
+        Text = "_Label";
         return true;
     }
 }

+ 12 - 2
Terminal.Gui/Views/ListView.cs

@@ -140,7 +140,12 @@ public class ListView : View, IDesignable
         // Accept (Enter key) - Raise Accept event - DO NOT advance state
         AddCommand (Command.Accept, () =>
                                     {
-                                        if (OnOpenSelectedItem () && RaiseAccepted () == true)
+                                        if (RaiseAccepted () == true)
+                                        {
+                                            return true;
+                                        }
+
+                                        if (OnOpenSelectedItem ())
                                         {
                                                 return true;
                                         }
@@ -153,7 +158,12 @@ public class ListView : View, IDesignable
                                     {
                                         if (_allowsMarking)
                                         {
-                                            if (MarkUnmarkSelectedItem () && RaiseSelected () == true)
+                                            if (RaiseSelected () == true)
+                                            {
+                                                return true;
+                                            }
+
+                                            if (MarkUnmarkSelectedItem ())
                                             {
                                                 return true;
                                             }

+ 12 - 7
Terminal.Gui/Views/Menu/MenuBar.cs

@@ -121,9 +121,12 @@ public class MenuBar : View, IDesignable
                     Command.Accept,
                     () =>
                     {
-                        ProcessMenu (_selected, Menus [_selected]);
+                        if (Menus.Length > 0)
+                        {
+                            ProcessMenu (_selected, Menus [_selected]);
+                        }
 
-                        return true;
+                        return RaiseAccepted ();
                     }
                    );
         AddCommand (Command.Toggle, ctx =>
@@ -134,7 +137,7 @@ public class MenuBar : View, IDesignable
                                                   });
         AddCommand (Command.Select, ctx =>
                                     {
-                                        var res =  Run ((ctx.KeyBinding?.Context as MenuItem)?.Action!);
+                                        var res = Run ((ctx.KeyBinding?.Context as MenuItem)?.Action!);
                                         CloseAllMenus ();
 
                                         return res;
@@ -1153,11 +1156,11 @@ public class MenuBar : View, IDesignable
         SetNeedsDisplay ();
     }
 
-    private void ProcessMenu (int i, MenuBarItem mi)
+    private bool ProcessMenu (int i, MenuBarItem mi)
     {
         if (_selected < 0 && IsMenuOpen)
         {
-            return;
+            return false;
         }
 
         if (mi.IsTopLevel)
@@ -1180,16 +1183,18 @@ public class MenuBar : View, IDesignable
                                    )
                 && !CloseMenu ())
             {
-                return;
+                return true;
             }
 
             if (!OpenCurrentMenu.CheckSubMenu ())
             {
-                return;
+                return true;
             }
         }
 
         SetNeedsDisplay ();
+
+        return true;
     }
 
     private void RemoveSubMenu (int index, bool ignoreUseSubMenusSingleFrame = false)

+ 6 - 1
Terminal.Gui/Views/RadioGroup.cs

@@ -50,7 +50,7 @@ public class RadioGroup : View, IDesignable, IOrientation
                     });
 
         // Accept (Enter key) - Raise Accept event - DO NOT advance state
-        AddCommand (Command.Accept, () => RaiseAccepted());
+        AddCommand (Command.Accept, () => RaiseAccepted ());
 
         // Hotkey - ctx may indicate a radio item hotkey was pressed. Beahvior depends on HasFocus
         //          If HasFocus and it's this.HotKey invoke Select command - DO NOT raise Accept
@@ -100,6 +100,11 @@ public class RadioGroup : View, IDesignable, IOrientation
                                     return false;
                                 }
 
+                                if (RaiseHotKeyHandled () == true)
+                                {
+                                    return true;
+                                };
+
                                 // Default Command.Hotkey sets focus
                                 SetFocus ();
 

+ 1 - 1
UnitTests/TestHelpers.cs

@@ -742,7 +742,7 @@ public class TestsAllViews
     public static IEnumerable<object []> AllViewTypes =>
         typeof (View).Assembly
                      .GetTypes ()
-                     .Where (type => type.IsClass && !type.IsAbstract && type.IsPublic && type.IsSubclassOf (typeof (View)))
+                     .Where (type => type.IsClass && !type.IsAbstract && type.IsPublic && (type.IsSubclassOf (typeof (View)) || type == typeof(View)))
                      .Select (type => new object [] { type });
 
     public static View CreateInstanceIfNotGeneric (Type type)

+ 3 - 3
UnitTests/View/HotKeyTests.cs

@@ -362,20 +362,20 @@ public class HotKeyTests
         view.Selected += (s, e) => selectRaised = true;
 
         Assert.Equal (KeyCode.T, view.HotKey);
-        Assert.False (Application.OnKeyDown (Key.T)); // wasn't handled
+        Assert.True (Application.OnKeyDown (Key.T)); 
         Assert.True (hotKeyRaised);
         Assert.False (acceptRaised);
         Assert.False (selectRaised);
 
         hotKeyRaised = false;
-        Assert.False (Application.OnKeyDown (Key.T.WithAlt));
+        Assert.True (Application.OnKeyDown (Key.T.WithAlt));
         Assert.True (hotKeyRaised);
         Assert.False (acceptRaised);
         Assert.False (selectRaised);
 
         hotKeyRaised = false;
         view.HotKey = KeyCode.E;
-        Assert.False (Application.OnKeyDown (Key.E.WithAlt));
+        Assert.True (Application.OnKeyDown (Key.E.WithAlt));
         Assert.True (hotKeyRaised);
         Assert.False (acceptRaised);
         Assert.False (selectRaised);

+ 47 - 0
UnitTests/Views/AllViewsTests.cs

@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Reflection;
+using System.Text;
 using Xunit.Abstractions;
 
 namespace Terminal.Gui.ViewsTests;
@@ -163,4 +164,50 @@ public class AllViewsTests (ITestOutputHelper output) : TestsAllViews
             Assert.Equal (1, acceptedCount);
         }
     }
+
+
+    [Theory]
+    [MemberData (nameof (AllViewTypes))]
+    public void AllViews_Command_HotKey_Raises_HotKeyHandled (Type viewType)
+    {
+        var view = (View)CreateInstanceIfNotGeneric (viewType);
+
+        if (view == null)
+        {
+            output.WriteLine ($"Ignoring {viewType} - It's a Generic");
+
+            return;
+        }
+
+        if (view is IDesignable designable)
+        {
+            designable.EnableForDesign ();
+        }
+        else
+        {
+            view.HotKey = Key.T;
+        }
+
+        var selectedCount = 0;
+        view.Selected += (s, e) => selectedCount++;
+
+        var acceptedCount = 0;
+        view.Accepted += (s, e) =>
+                         {
+                             acceptedCount++;
+                         };
+
+        var hotkeyHandledCount = 0;
+        view.HotKeyHandled += (s, e) =>
+                         {
+                             hotkeyHandledCount++;
+                         };
+
+        if (view.InvokeCommand (Command.HotKey) == true)
+        {
+            Assert.Equal (1, hotkeyHandledCount);
+            Assert.Equal (0, selectedCount);
+            Assert.Equal (0, acceptedCount);
+        }
+    }
 }

+ 2 - 2
UnitTests/Views/ColorPickerTests.cs

@@ -437,7 +437,7 @@ public class ColorPickerTests
         Application.OnMouseEvent (new ()
         {
             Flags = MouseFlags.Button1Pressed,
-            Position = new (0, 1)
+            ScreenPosition = new (0, 1)
         });
         //cp.Subviews.OfType<GBar> ()
         //  .Single ()
@@ -456,7 +456,7 @@ public class ColorPickerTests
         Application.OnMouseEvent (new ()
         {
             Flags = MouseFlags.Button1Pressed,
-            Position = new (0, 2)
+            ScreenPosition = new (0, 2)
         });
         //cp.Subviews.OfType<BBar> ()
         //  .Single ()

+ 11 - 11
UnitTests/Views/ContextMenuTests.cs

@@ -148,7 +148,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (8, 2), Flags = MouseFlags.Button3Clicked });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (8, 2), Flags = MouseFlags.Button3Clicked });
 
         var firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -231,7 +231,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (9, 3), Flags = MouseFlags.Button3Clicked });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (9, 3), Flags = MouseFlags.Button3Clicked });
 
         var firstIteration = false;
         Application.RunIteration (ref rsDialog, ref firstIteration);
@@ -287,7 +287,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (9, 3), Flags = MouseFlags.Button3Clicked });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (9, 3), Flags = MouseFlags.Button3Clicked });
 
         var firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -1235,7 +1235,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                      );
 
         // X=5 is the border and so need to use at least one more
-        Application.OnMouseEvent (new MouseEvent { Position = new (6, 13), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 13), Flags = MouseFlags.Button1Clicked });
 
         var firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -1253,7 +1253,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (6, 12), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 12), Flags = MouseFlags.Button1Clicked });
 
         firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -1327,7 +1327,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (6, 13), Flags = MouseFlags.ReportMousePosition });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 13), Flags = MouseFlags.ReportMousePosition });
 
         var firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -1344,7 +1344,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (6, 14), Flags = MouseFlags.ReportMousePosition });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 14), Flags = MouseFlags.ReportMousePosition });
 
         firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -1362,7 +1362,7 @@ public class ContextMenuTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new MouseEvent { Position = new (6, 13), Flags = MouseFlags.ReportMousePosition });
+        Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 13), Flags = MouseFlags.ReportMousePosition });
 
         firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -1399,7 +1399,7 @@ public class ContextMenuTests (ITestOutputHelper output)
         Assert.Empty (Application._cachedViewsUnderMouse);
 
         // Right click on tf2 to open context menu
-        Application.OnMouseEvent (new () { Position = new (1, 3), Flags = MouseFlags.Button3Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (1, 3), Flags = MouseFlags.Button3Clicked });
         Assert.False (tf1.HasFocus);
         Assert.False (tf2.HasFocus);
         Assert.Equal (5, win.Subviews.Count);
@@ -1409,7 +1409,7 @@ public class ContextMenuTests (ITestOutputHelper output)
         Assert.Equal (tf2, Application._cachedViewsUnderMouse.LastOrDefault ());
 
         // Click on tf1 to focus it, which cause context menu being closed
-        Application.OnMouseEvent (new () { Position = new (1, 1), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (1, 1), Flags = MouseFlags.Button1Clicked });
         Assert.True (tf1.HasFocus);
         Assert.False (tf2.HasFocus);
         Assert.Equal (4, win.Subviews.Count);
@@ -1421,7 +1421,7 @@ public class ContextMenuTests (ITestOutputHelper output)
         Assert.Equal (tf1, Application._cachedViewsUnderMouse.LastOrDefault ());
 
         // Click on tf2 to focus it
-        Application.OnMouseEvent (new () { Position = new (1, 3), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (1, 3), Flags = MouseFlags.Button1Clicked });
         Assert.False (tf1.HasFocus);
         Assert.True (tf2.HasFocus);
         Assert.Equal (4, win.Subviews.Count);

+ 28 - 11
UnitTests/Views/LabelTests.cs

@@ -1320,9 +1320,20 @@ e
     [Fact]
     public void CanFocus_False_HotKey_SetsFocus_Next ()
     {
-        View otherView = new () { Text = "otherView", CanFocus = true };
-        Label label = new () { Text = "_label" };
-        View nextView = new () { Text = "nextView", CanFocus = true };
+        View otherView = new ()
+        {
+            Text = "otherView",
+            CanFocus = true
+        };
+        Label label = new ()
+        {
+            Text = "_label"
+        };
+        View nextView = new ()
+        {
+            Text = "nextView",
+            CanFocus = true
+        };
         Application.Navigation = new ();
         Application.Top = new ();
         Application.Top.Add (otherView, label, nextView);
@@ -1330,7 +1341,6 @@ e
         Application.Top.SetFocus ();
         Assert.True (otherView.HasFocus);
 
-        // No focused view accepts Tab, and there's no other view to focus, so OnKeyDown returns false
         Assert.True (Application.OnKeyDown (label.HotKey));
         Assert.False (otherView.HasFocus);
         Assert.False (label.HasFocus);
@@ -1365,23 +1375,30 @@ e
     [Fact]
     public void CanFocus_True_HotKey_SetsFocus ()
     {
-        Label label = new () { Text = "_label" };
-        View view = new () { Text = "view", CanFocus = true };
+        Label label = new ()
+        {
+            Text = "_label",
+            CanFocus = true
+        };
+        View view = new ()
+        {
+            Text = "view",
+            CanFocus = true
+        };
         Application.Navigation = new ();
         Application.Top = new ();
         Application.Top.Add (label, view);
 
-        Application.Top.SetFocus ();
-        Assert.Equal (view, Application.Top.MostFocused);
-        Assert.False (label.CanFocus);
+        view.SetFocus ();
+        Assert.True (label.CanFocus);
         Assert.False (label.HasFocus);
         Assert.True (view.CanFocus);
         Assert.True (view.HasFocus);
 
         // No focused view accepts Tab, and there's no other view to focus, so OnKeyDown returns false
         Assert.True (Application.OnKeyDown (label.HotKey));
-        Assert.False (label.HasFocus);
-        Assert.True (view.HasFocus);
+        Assert.True (label.HasFocus);
+        Assert.False (view.HasFocus);
 
         Application.Top.Dispose ();
         Application.ResetState ();

+ 11 - 11
UnitTests/Views/ListViewTests.cs

@@ -414,14 +414,14 @@ Item 6",
         var listView = new ListView ();
         var accepted = false;
 
-        listView.Accepted += OnAccept;
+        listView.Accepted += OnAccepted;
         listView.InvokeCommand (Command.HotKey);
 
         Assert.False (accepted);
 
         return;
 
-        void OnAccept (object sender, HandledEventArgs e) { accepted = true; }
+        void OnAccepted (object sender, HandledEventArgs e) { accepted = true; }
     }
 
     [Fact]
@@ -435,7 +435,7 @@ Item 6",
         var opened = false;
         var selectedValue = string.Empty;
 
-        listView.Accepted += Accept;
+        listView.Accepted += Accepted;
         listView.OpenSelectedItem += OpenSelectedItem;
 
         listView.InvokeCommand (Command.Accept);
@@ -452,7 +452,7 @@ Item 6",
             selectedValue = e.Value.ToString ();
         }
 
-        void Accept (object sender, HandledEventArgs e) { accepted = true; }
+        void Accepted (object sender, HandledEventArgs e) { accepted = true; }
     }
 
     [Fact]
@@ -466,7 +466,7 @@ Item 6",
         var opened = false;
         var selectedValue = string.Empty;
 
-        listView.Accepted += Accept;
+        listView.Accepted += Accepted;
         listView.OpenSelectedItem += OpenSelectedItem;
 
         listView.InvokeCommand (Command.Accept);
@@ -483,7 +483,7 @@ Item 6",
             selectedValue = e.Value.ToString ();
         }
 
-        void Accept (object sender, HandledEventArgs e)
+        void Accepted (object sender, HandledEventArgs e)
         {
             accepted = true;
             e.Handled = true;
@@ -741,14 +741,14 @@ Item 6",
 └─────┘",
                                                       output);
 
-        Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (0, 0), Flags = MouseFlags.Button1Clicked });
         Assert.Equal ("", selected);
         Assert.Equal (-1, lv.SelectedItem);
 
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (1, 1), Flags = MouseFlags.Button1Clicked
+                                      ScreenPosition = new (1, 1), Flags = MouseFlags.Button1Clicked
                                   });
         Assert.Equal ("One", selected);
         Assert.Equal (0, lv.SelectedItem);
@@ -756,7 +756,7 @@ Item 6",
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (1, 2), Flags = MouseFlags.Button1Clicked
+                                      ScreenPosition = new (1, 2), Flags = MouseFlags.Button1Clicked
                                   });
         Assert.Equal ("Two", selected);
         Assert.Equal (1, lv.SelectedItem);
@@ -764,7 +764,7 @@ Item 6",
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (1, 3), Flags = MouseFlags.Button1Clicked
+                                      ScreenPosition = new (1, 3), Flags = MouseFlags.Button1Clicked
                                   });
         Assert.Equal ("Three", selected);
         Assert.Equal (2, lv.SelectedItem);
@@ -772,7 +772,7 @@ Item 6",
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (1, 4), Flags = MouseFlags.Button1Clicked
+                                      ScreenPosition = new (1, 4), Flags = MouseFlags.Button1Clicked
                                   });
         Assert.Equal ("Three", selected);
         Assert.Equal (2, lv.SelectedItem);

+ 5 - 5
UnitTests/Views/MenuBarTests.cs

@@ -243,7 +243,7 @@ public class MenuBarTests (ITestOutputHelper output)
         top.Add (menu, btn);
         Application.Begin (top);
 
-        Application.OnMouseEvent (new () { Position = new (0, 4), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (0, 4), Flags = MouseFlags.Button1Clicked });
         Assert.True (btnClicked);
         top.Dispose ();
     }
@@ -613,7 +613,7 @@ public class MenuBarTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new () { Position = new (20, 5), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (20, 5), Flags = MouseFlags.Button1Clicked });
 
         firstIteration = false;
 
@@ -646,7 +646,7 @@ public class MenuBarTests (ITestOutputHelper output)
         {
             menu.OpenMenu ();
 
-            Application.OnMouseEvent (new () { Position = new (20, 5 + i), Flags = MouseFlags.Button1Clicked });
+            Application.OnMouseEvent (new () { ScreenPosition = new (20, 5 + i), Flags = MouseFlags.Button1Clicked });
 
             firstIteration = false;
             Application.RunIteration (ref rsDialog, ref firstIteration);
@@ -809,7 +809,7 @@ public class MenuBarTests (ITestOutputHelper output)
                                                       output
                                                      );
 
-        Application.OnMouseEvent (new () { Position = new (20, 5), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (20, 5), Flags = MouseFlags.Button1Clicked });
 
         firstIteration = false;
 
@@ -831,7 +831,7 @@ public class MenuBarTests (ITestOutputHelper output)
         {
             menu.OpenMenu ();
 
-            Application.OnMouseEvent (new () { Position = new (20, 5 + i), Flags = MouseFlags.Button1Clicked });
+            Application.OnMouseEvent (new () { ScreenPosition = new (20, 5 + i), Flags = MouseFlags.Button1Clicked });
 
             firstIteration = false;
             Application.RunIteration (ref rs, ref firstIteration);

+ 9 - 9
UnitTests/Views/TabViewTests.cs

@@ -143,21 +143,21 @@ public class TabViewTests (ITestOutputHelper output)
         // Waving mouse around does not trigger click
         for (var i = 0; i < 100; i++)
         {
-            args = new () { Position = new (i, 1), Flags = MouseFlags.ReportMousePosition };
+            args = new () { ScreenPosition = new (i, 1), Flags = MouseFlags.ReportMousePosition };
             Application.OnMouseEvent (args);
             Application.Refresh ();
             Assert.Null (clicked);
             Assert.Equal (tab1, tv.SelectedTab);
         }
 
-        args = new () { Position = new (3, 1), Flags = MouseFlags.Button1Clicked };
+        args = new () { ScreenPosition = new (3, 1), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
         Assert.Equal (tab1, clicked);
         Assert.Equal (tab1, tv.SelectedTab);
 
         // Click to tab2
-        args = new () { Position = new (6, 1), Flags = MouseFlags.Button1Clicked };
+        args = new () { ScreenPosition = new (6, 1), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
         Assert.Equal (tab2, clicked);
@@ -170,7 +170,7 @@ public class TabViewTests (ITestOutputHelper output)
                              e.MouseEvent.Handled = true;
                          };
 
-        args = new () { Position = new (3, 1), Flags = MouseFlags.Button1Clicked };
+        args = new () { ScreenPosition = new (3, 1), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
 
@@ -178,7 +178,7 @@ public class TabViewTests (ITestOutputHelper output)
         Assert.Equal (tab1, clicked);
         Assert.Equal (tab2, tv.SelectedTab);
 
-        args = new () { Position = new (12, 1), Flags = MouseFlags.Button1Clicked };
+        args = new () { ScreenPosition = new (12, 1), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
 
@@ -233,7 +233,7 @@ public class TabViewTests (ITestOutputHelper output)
         Application.Begin (top);
 
         // Click the right arrow
-        var args = new MouseEvent { Position = new (6, 2), Flags = MouseFlags.Button1Clicked };
+        var args = new MouseEvent { ScreenPosition = new (6, 2), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
         Assert.Null (clicked);
@@ -253,7 +253,7 @@ public class TabViewTests (ITestOutputHelper output)
                                             );
 
         // Click the left arrow
-        args = new () { Position = new (0, 2), Flags = MouseFlags.Button1Clicked };
+        args = new () { ScreenPosition = new (0, 2), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
         Assert.Null (clicked);
@@ -324,7 +324,7 @@ public class TabViewTests (ITestOutputHelper output)
         Application.Begin (top);
 
         // Click the right arrow
-        var args = new MouseEvent { Position = new (7, 3), Flags = MouseFlags.Button1Clicked };
+        var args = new MouseEvent { ScreenPosition = new (7, 3), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
         Assert.Null (clicked);
@@ -346,7 +346,7 @@ public class TabViewTests (ITestOutputHelper output)
                                             );
 
         // Click the left arrow
-        args = new () { Position = new (1, 3), Flags = MouseFlags.Button1Clicked };
+        args = new () { ScreenPosition = new (1, 3), Flags = MouseFlags.Button1Clicked };
         Application.OnMouseEvent (args);
         Application.Refresh ();
         Assert.Null (clicked);

+ 1 - 0
UnitTests/Views/TableViewTests.cs

@@ -2568,6 +2568,7 @@ A B C
     [SetupFakeDriver]
     public void TestTableViewCheckboxes_ByObject ()
     {
+        Assert.Equal(ConfigurationManager.ConfigLocations.DefaultOnly, ConfigurationManager.Locations);
         TableView tv = GetPetTable (out EnumerableTableSource<PickablePet> source);
         tv.LayoutSubviews ();
         IReadOnlyCollection<PickablePet> pets = source.Data;

+ 4 - 4
UnitTests/Views/TextFieldTests.cs

@@ -777,7 +777,7 @@ public class TextFieldTests (ITestOutputHelper output)
     }
 
     [Fact]
-    public void Accept_Command_Fires_Accept ()
+    public void Accepted_Command_Fires_Accept ()
     {
         var view = new TextField ();
 
@@ -794,7 +794,7 @@ public class TextFieldTests (ITestOutputHelper output)
     [Theory]
     [InlineData (false, 1)]
     [InlineData (true, 0)]
-    public void Accept_Handler_Handled_Prevents_Default_Button_Accept (bool handleAccept, int expectedButtonAccepts)
+    public void Accepted_Handler_Handled_Prevents_Default_Button_Accept (bool handleAccept, int expectedButtonAccepts)
     {
         var superView = new Window ()
         {
@@ -846,7 +846,7 @@ public class TextFieldTests (ITestOutputHelper output)
     }
 
     [Fact]
-    public void Accept_No_Handler_Enables_Default_Button_Accept ()
+    public void Accepted_No_Handler_Enables_Default_Button_Accept ()
     {
         var superView = new Window ()
         {
@@ -887,7 +887,7 @@ public class TextFieldTests (ITestOutputHelper output)
     }
 
     [Fact]
-    public void Accept_Cancel_Event_HandlesCommand ()
+    public void Accepted_Cancel_Event_HandlesCommand ()
     {
         //var super = new View ();
         var view = new TextField ();

+ 10 - 10
UnitTests/Views/TextViewTests.cs

@@ -5338,7 +5338,7 @@ This is the second line.
         tv.AllowsReturn = false;
         Assert.Equal (Point.Empty, tv.CursorPosition);
         Assert.False (tv.Selecting);
-        Assert.True (tv.NewKeyDownEvent (Key.Enter));
+        Assert.False (tv.NewKeyDownEvent (Key.Enter)); // Accepted event not handled
         Assert.Equal ($"This is the second line.{Environment.NewLine}This is the third ", tv.Text);
         Assert.Equal (Point.Empty, tv.CursorPosition);
         Assert.Equal (0, tv.SelectedLength);
@@ -8476,28 +8476,28 @@ line.
 
     [Theory]
     [InlineData (false, 1)]
-    [InlineData (true, 0)]
-    public void Accept_Command_Fires_Accept_Based_On_AllowsReturn (bool allowsReturn, int expectedAcceptEvents)
+    [InlineData (true, 1)]
+    public void Accepted_Command_Raises_Accepted_Regardles_Of_AllowsReturn (bool allowsReturn, int expectedAcceptEvents)
     {
         var view = new TextView ()
         {
             AllowsReturn = allowsReturn,
         };
 
-        int acceptEvents = 0;
+        int acceptedEvents = 0;
         view.Accepted += Accept;
         view.InvokeCommand (Command.Accept);
-        Assert.Equal (expectedAcceptEvents, acceptEvents);
+        Assert.Equal (expectedAcceptEvents, acceptedEvents);
 
         return;
 
-        void Accept (object sender, HandledEventArgs e) { acceptEvents++; }
+        void Accept (object sender, HandledEventArgs e) { acceptedEvents++; }
     }
 
     [Theory]
     [InlineData (false, 1)]
     [InlineData (true, 0)]
-    public void Enter_Key_Fires_Accept_BasedOn_AllowsReturn (bool allowsReturn, int expectedAccepts)
+    public void Enter_Key_Fires_Accepted_BasedOn_AllowsReturn (bool allowsReturn, int expectedAccepts)
     {
         var view = new TextView ()
         {
@@ -8517,7 +8517,7 @@ line.
     [Theory]
     [InlineData (false, 1)]
     [InlineData (true, 0)]
-    public void Enter_Key_Fires_Accept_BasedOn_Multiline (bool multiline, int expectedAccepts)
+    public void Enter_Key_Fires_Accepted_BasedOn_Multiline (bool multiline, int expectedAccepts)
     {
         var view = new TextView ()
         {
@@ -8539,7 +8539,7 @@ line.
     [InlineData (false, true, 1, 0)]
     [InlineData (true, false, 0, 0)]
     [InlineData (true, true, 0, 0)]
-    public void Accept_Event_Handled_Prevents_Default_Button_Accept (bool multiline, bool handleAccept, int expectedAccepts, int expectedButtonAccepts)
+    public void Accepted_Event_Handled_Prevents_Default_Button_Accept (bool multiline, bool handleAccept, int expectedAccepts, int expectedButtonAccepts)
     {
         var superView = new Window ();
         var tv = new TextView ()
@@ -8588,7 +8588,7 @@ line.
     [Theory]
     [InlineData (true, 0)]
     [InlineData (false, 1)]
-    public void Accept_No_Handler_Enables_Default_Button_Accept (bool multiline, int expectedButtonAccept)
+    public void Accepted_No_Handler_Enables_Default_Button_Accept (bool multiline, int expectedButtonAccept)
     {
         var superView = new Window ();
         var tv = new TextView ()

+ 22 - 22
UnitTests/Views/ToplevelTests.cs

@@ -440,7 +440,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Assert.Null (Application.MouseGrabView);
 
                                          // Grab the mouse
-                                         Application.OnMouseEvent (new () { Position = new (3, 2), Flags = MouseFlags.Button1Pressed });
+                                         Application.OnMouseEvent (new () { ScreenPosition = new (3, 2), Flags = MouseFlags.Button1Pressed });
 
                                          Assert.Equal (Application.Top!.Border, Application.MouseGrabView);
                                          Assert.Equal (new (2, 2, 10, 3), Application.Top.Frame);
@@ -453,7 +453,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Application.OnMouseEvent (
                                                                    new ()
                                                                    {
-                                                                       Position = new (2, 2), Flags = MouseFlags.Button1Pressed
+                                                                       ScreenPosition = new (2, 2), Flags = MouseFlags.Button1Pressed
                                                                                                       | MouseFlags.ReportMousePosition
                                                                    });
                                          Application.Refresh ();
@@ -476,7 +476,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Application.OnMouseEvent (
                                                                    new ()
                                                                    {
-                                                                       Position = new (2, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                                                       ScreenPosition = new (2, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                                                    });
                                          Application.Refresh ();
 
@@ -496,7 +496,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Assert.Equal (Application.Top!.Border, Application.MouseGrabView);
 
                                          // Ungrab the mouse
-                                         Application.OnMouseEvent (new () { Position = new (2, 1), Flags = MouseFlags.Button1Released });
+                                         Application.OnMouseEvent (new () { ScreenPosition = new (2, 1), Flags = MouseFlags.Button1Released });
                                          Application.Refresh ();
 
                                          Assert.Null (Application.MouseGrabView);
@@ -548,7 +548,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Application.OnMouseEvent (
                                                                    new ()
                                                                    {
-                                                                       Position = new (win.Frame.X, win.Frame.Y), Flags = MouseFlags.Button1Pressed
+                                                                       ScreenPosition = new (win.Frame.X, win.Frame.Y), Flags = MouseFlags.Button1Pressed
                                                                    });
 
                                          Assert.Equal (win.Border, Application.MouseGrabView);
@@ -564,7 +564,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Application.OnMouseEvent (
                                                                    new ()
                                                                    {
-                                                                       Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags =
+                                                                       ScreenPosition = new (win.Frame.X + movex, win.Frame.Y + movey), Flags =
                                                                            MouseFlags.Button1Pressed
                                                                            | MouseFlags.ReportMousePosition
                                                                    });
@@ -589,7 +589,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Application.OnMouseEvent (
                                                                    new ()
                                                                    {
-                                                                       Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags =
+                                                                       ScreenPosition = new (win.Frame.X + movex, win.Frame.Y + movey), Flags =
                                                                            MouseFlags.Button1Pressed
                                                                            | MouseFlags.ReportMousePosition
                                                                    });
@@ -614,7 +614,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
                                          Application.OnMouseEvent (
                                                                    new ()
                                                                    {
-                                                                       Position = new (win.Frame.X + movex, win.Frame.Y + movey),
+                                                                       ScreenPosition = new (win.Frame.X + movex, win.Frame.Y + movey),
                                                                        Flags = MouseFlags.Button1Released
                                                                    });
 
@@ -743,11 +743,11 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Assert.Equal (new (0, 0, 200, 100), scrollView.Subviews [0].Frame);
         Assert.Equal (new (3, 3, 194, 94), win.Frame);
 
-        Application.OnMouseEvent (new () { Position = new (6, 6), Flags = MouseFlags.Button1Pressed });
+        Application.OnMouseEvent (new () { ScreenPosition = new (6, 6), Flags = MouseFlags.Button1Pressed });
         Assert.Equal (win.Border, Application.MouseGrabView);
         Assert.Equal (new (3, 3, 194, 94), win.Frame);
 
-        Application.OnMouseEvent (new () { Position = new (9, 9), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition });
+        Application.OnMouseEvent (new () { ScreenPosition = new (9, 9), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition });
         Assert.Equal (win.Border, Application.MouseGrabView);
         top.SetNeedsLayout ();
         top.LayoutSubviews ();
@@ -757,7 +757,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (5, 5), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (5, 5), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
         Assert.Equal (win.Border, Application.MouseGrabView);
         top.SetNeedsLayout ();
@@ -765,12 +765,12 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Assert.Equal (new (2, 2, 195, 95), win.Frame);
         Application.Refresh ();
 
-        Application.OnMouseEvent (new () { Position = new (5, 5), Flags = MouseFlags.Button1Released });
+        Application.OnMouseEvent (new () { ScreenPosition = new (5, 5), Flags = MouseFlags.Button1Released });
 
         // ScrollView always grab the mouse when the container's subview OnMouseEnter don't want grab the mouse
         Assert.Equal (scrollView, Application.MouseGrabView);
 
-        Application.OnMouseEvent (new () { Position = new (4, 4), Flags = MouseFlags.ReportMousePosition });
+        Application.OnMouseEvent (new () { ScreenPosition = new (4, 4), Flags = MouseFlags.ReportMousePosition });
         Assert.Equal (scrollView, Application.MouseGrabView);
         top.Dispose ();
     }
@@ -790,14 +790,14 @@ public partial class ToplevelTests (ITestOutputHelper output)
 
         Assert.Null (Application.MouseGrabView);
 
-        Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Pressed });
+        Application.OnMouseEvent (new () { ScreenPosition = new (0, 0), Flags = MouseFlags.Button1Pressed });
 
         Assert.Equal (window.Border, Application.MouseGrabView);
 
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (-11, -4), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (-11, -4), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
 
         Application.Refresh ();
@@ -810,7 +810,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
 
         Application.Refresh ();
@@ -823,7 +823,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
 
         Application.Refresh ();
@@ -833,7 +833,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (18, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (18, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
 
         Application.Refresh ();
@@ -844,7 +844,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (19, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (19, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
 
         Application.Refresh ();
@@ -882,7 +882,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Assert.Null (Application.MouseGrabView);
         Assert.Equal (new (0, 0, 10, 3), window.Frame);
 
-        Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Pressed });
+        Application.OnMouseEvent (new () { ScreenPosition = new (0, 0), Flags = MouseFlags.Button1Pressed });
 
         var firstIteration = false;
         Application.RunIteration (ref rs, ref firstIteration);
@@ -893,7 +893,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
         Application.OnMouseEvent (
                                   new ()
                                   {
-                                      Position = new (1, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
+                                      ScreenPosition = new (1, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
                                   });
 
         firstIteration = false;
@@ -984,7 +984,7 @@ public partial class ToplevelTests (ITestOutputHelper output)
 
         Assert.Equal (new (2, 1, 15, 10), testWindow.Frame);
 
-        Application.OnMouseEvent (new () { Position = new (5, 2), Flags = MouseFlags.Button1Clicked });
+        Application.OnMouseEvent (new () { ScreenPosition = new (5, 2), Flags = MouseFlags.Button1Clicked });
 
         Application.Refresh ();