From 8a0903f61680b6469cad481e3f4399ce53f9b4b3 Mon Sep 17 00:00:00 2001 From: robloo Date: Sun, 26 Jun 2022 18:53:14 -0400 Subject: [PATCH 1/2] Rename PointerEnter to PointerEntered --- src/Avalonia.Base/Input/IInputElement.cs | 2 +- src/Avalonia.Base/Input/InputElement.cs | 34 ++++++++----- .../Input/PointerOverPreProcessor.cs | 2 +- .../ColorSpectrum/ColorSpectrum.cs | 8 +-- .../DataGridCell.cs | 4 +- .../DataGridColumnHeader.cs | 8 +-- src/Avalonia.Controls.DataGrid/DataGridRow.cs | 4 +- .../DataGridRowGroupHeader.cs | 4 +- .../DataGridRowHeader.cs | 4 +- .../Calendar/CalendarItem.cs | 12 ++--- src/Avalonia.Controls/GridSplitter.cs | 4 +- src/Avalonia.Controls/MenuItem.cs | 20 ++++---- .../Platform/DefaultMenuInteractionHandler.cs | 10 ++-- src/Avalonia.Controls/Primitives/ScrollBar.cs | 4 +- src/Avalonia.Controls/ToolTipService.cs | 6 +-- .../Diagnostics/Views/TreePageView.xaml.cs | 2 +- .../Input/PointerOverTests.cs | 50 +++++++++---------- .../ButtonTests.cs | 8 +-- .../DefaultMenuInteractionHandlerTests.cs | 30 +++++------ tests/Avalonia.UnitTests/MouseTestHelper.cs | 2 +- 20 files changed, 114 insertions(+), 104 deletions(-) diff --git a/src/Avalonia.Base/Input/IInputElement.cs b/src/Avalonia.Base/Input/IInputElement.cs index 78001143d73..c6efb851ef6 100644 --- a/src/Avalonia.Base/Input/IInputElement.cs +++ b/src/Avalonia.Base/Input/IInputElement.cs @@ -42,7 +42,7 @@ public interface IInputElement : IInteractive, IVisual /// /// Occurs when the pointer enters the control. /// - event EventHandler? PointerEnter; + event EventHandler? PointerEntered; /// /// Occurs when the pointer leaves the control. diff --git a/src/Avalonia.Base/Input/InputElement.cs b/src/Avalonia.Base/Input/InputElement.cs index f4e25ebada9..4affc5e592f 100644 --- a/src/Avalonia.Base/Input/InputElement.cs +++ b/src/Avalonia.Base/Input/InputElement.cs @@ -128,16 +128,20 @@ public class InputElement : Interactive, IInputElement RoutingStrategies.Tunnel | RoutingStrategies.Bubble); /// - /// Defines the event. + /// Defines the event. /// - public static readonly RoutedEvent PointerEnterEvent = - RoutedEvent.Register(nameof(PointerEnter), RoutingStrategies.Direct); + public static readonly RoutedEvent PointerEnteredEvent = + RoutedEvent.Register( + nameof(PointerEntered), + RoutingStrategies.Direct); /// /// Defines the event. /// public static readonly RoutedEvent PointerLeaveEvent = - RoutedEvent.Register(nameof(PointerLeave), RoutingStrategies.Direct); + RoutedEvent.Register( + nameof(PointerLeave), + RoutingStrategies.Direct); /// /// Defines the event. @@ -208,7 +212,7 @@ static InputElement() KeyDownEvent.AddClassHandler((x, e) => x.OnKeyDown(e)); KeyUpEvent.AddClassHandler((x, e) => x.OnKeyUp(e)); TextInputEvent.AddClassHandler((x, e) => x.OnTextInput(e)); - PointerEnterEvent.AddClassHandler((x, e) => x.OnPointerEnterCore(e)); + PointerEnteredEvent.AddClassHandler((x, e) => x.OnPointerEnterCore(e)); PointerLeaveEvent.AddClassHandler((x, e) => x.OnPointerLeaveCore(e)); PointerMovedEvent.AddClassHandler((x, e) => x.OnPointerMoved(e)); PointerPressedEvent.AddClassHandler((x, e) => x.OnPointerPressed(e)); @@ -279,10 +283,10 @@ public event EventHandler? TextInputMet /// /// Occurs when the pointer enters the control. /// - public event EventHandler? PointerEnter + public event EventHandler? PointerEntered { - add { AddHandler(PointerEnterEvent, value); } - remove { RemoveHandler(PointerEnterEvent, value); } + add { AddHandler(PointerEnteredEvent, value); } + remove { RemoveHandler(PointerEnteredEvent, value); } } /// @@ -539,10 +543,10 @@ protected virtual void OnTextInput(TextInputEventArgs e) } /// - /// Called before the event occurs. + /// Called before the event occurs. /// /// The event args. - protected virtual void OnPointerEnter(PointerEventArgs e) + protected virtual void OnPointerEntered(PointerEventArgs e) { } @@ -561,7 +565,9 @@ protected virtual void OnPointerLeave(PointerEventArgs e) protected virtual void OnPointerMoved(PointerEventArgs e) { if (_gestureRecognizers?.HandlePointerMoved(e) == true) + { e.Handled = true; + } } /// @@ -571,7 +577,9 @@ protected virtual void OnPointerMoved(PointerEventArgs e) protected virtual void OnPointerPressed(PointerPressedEventArgs e) { if (_gestureRecognizers?.HandlePointerPressed(e) == true) + { e.Handled = true; + } } /// @@ -581,7 +589,9 @@ protected virtual void OnPointerPressed(PointerPressedEventArgs e) protected virtual void OnPointerReleased(PointerReleasedEventArgs e) { if (_gestureRecognizers?.HandlePointerReleased(e) == true) + { e.Handled = true; + } } /// @@ -634,13 +644,13 @@ private static void IsEnabledChanged(AvaloniaPropertyChangedEventArgs e) } /// - /// Called before the event occurs. + /// Called before the event occurs. /// /// The event args. private void OnPointerEnterCore(PointerEventArgs e) { IsPointerOver = true; - OnPointerEnter(e); + OnPointerEntered(e); } /// diff --git a/src/Avalonia.Base/Input/PointerOverPreProcessor.cs b/src/Avalonia.Base/Input/PointerOverPreProcessor.cs index d22252893d1..a62c974881a 100644 --- a/src/Avalonia.Base/Input/PointerOverPreProcessor.cs +++ b/src/Avalonia.Base/Input/PointerOverPreProcessor.cs @@ -195,7 +195,7 @@ private void SetPointerOverToElement(IPointer pointer, IInputRoot root, IInputEl el = root.PointerOverElement = element; _lastPointer = (pointer, root.PointToScreen(position)); - e.RoutedEvent = InputElement.PointerEnterEvent; + e.RoutedEvent = InputElement.PointerEnteredEvent; while (el != null && el != branch) { diff --git a/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs b/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs index 245592207e6..d681834c697 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs @@ -128,7 +128,7 @@ protected override void OnApplyTemplate(TemplateAppliedEventArgs e) if (_inputTarget != null) { - _inputTarget.PointerEnter += InputTarget_PointerEnter; + _inputTarget.PointerEntered += InputTarget_PointerEntered; _inputTarget.PointerLeave += InputTarget_PointerLeave; _inputTarget.PointerPressed += InputTarget_PointerPressed; _inputTarget.PointerMoved += InputTarget_PointerMoved; @@ -194,7 +194,7 @@ private void UnregisterEvents() if (_inputTarget != null) { - _inputTarget.PointerEnter -= InputTarget_PointerEnter; + _inputTarget.PointerEntered -= InputTarget_PointerEntered; _inputTarget.PointerLeave -= InputTarget_PointerLeave; _inputTarget.PointerPressed -= InputTarget_PointerPressed; _inputTarget.PointerMoved -= InputTarget_PointerMoved; @@ -848,8 +848,8 @@ private void UpdateEllipse() UpdatePseudoClasses(); } - /// - private void InputTarget_PointerEnter(object? sender, PointerEventArgs args) + /// + private void InputTarget_PointerEntered(object? sender, PointerEventArgs args) { _isPointerOver = true; UpdatePseudoClasses(); diff --git a/src/Avalonia.Controls.DataGrid/DataGridCell.cs b/src/Avalonia.Controls.DataGrid/DataGridCell.cs index 67183781d38..9358c348cea 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridCell.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridCell.cs @@ -139,9 +139,9 @@ protected override void OnApplyTemplate(TemplateAppliedEventArgs e) } } - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { - base.OnPointerEnter(e); + base.OnPointerEntered(e); if (OwningRow != null) { diff --git a/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs b/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs index 915b36687c9..897996d8d30 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs @@ -83,8 +83,8 @@ public DataGridColumnHeader() { PointerPressed += DataGridColumnHeader_PointerPressed; PointerReleased += DataGridColumnHeader_PointerReleased; - PointerMoved += DataGridColumnHeader_PointerMove; - PointerEnter += DataGridColumnHeader_PointerEnter; + PointerMoved += DataGridColumnHeader_PointerMoved; + PointerEntered += DataGridColumnHeader_PointerEntered; PointerLeave += DataGridColumnHeader_PointerLeave; } @@ -452,7 +452,7 @@ internal void OnMouseMove(PointerEventArgs args, Point mousePosition, Point mous SetDragCursor(mousePosition); } - private void DataGridColumnHeader_PointerEnter(object sender, PointerEventArgs e) + private void DataGridColumnHeader_PointerEntered(object sender, PointerEventArgs e) { if (!IsEnabled) { @@ -506,7 +506,7 @@ private void DataGridColumnHeader_PointerReleased(object sender, PointerReleased UpdatePseudoClasses(); } - private void DataGridColumnHeader_PointerMove(object sender, PointerEventArgs e) + private void DataGridColumnHeader_PointerMoved(object sender, PointerEventArgs e) { if (OwningGrid == null || !IsEnabled) { diff --git a/src/Avalonia.Controls.DataGrid/DataGridRow.cs b/src/Avalonia.Controls.DataGrid/DataGridRow.cs index b062a14e39c..02c57965fd4 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRow.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRow.cs @@ -607,9 +607,9 @@ protected override void OnApplyTemplate(TemplateAppliedEventArgs e) } } - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { - base.OnPointerEnter(e); + base.OnPointerEntered(e); IsMouseOver = true; } protected override void OnPointerLeave(PointerEventArgs e) diff --git a/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs b/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs index a3dfa44fc96..74ee872e72a 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs @@ -375,7 +375,7 @@ internal void LoadVisualsForDisplay() ApplyHeaderStatus(); } - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { if (IsEnabled) { @@ -383,7 +383,7 @@ protected override void OnPointerEnter(PointerEventArgs e) UpdatePseudoClasses(); } - base.OnPointerEnter(e); + base.OnPointerEntered(e); } protected override void OnPointerLeave(PointerEventArgs e) diff --git a/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs b/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs index 03299bbf356..d8775061deb 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs @@ -158,14 +158,14 @@ internal void UpdatePseudoClasses() } } - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { if (OwningRow != null) { OwningRow.IsMouseOver = true; } - base.OnPointerEnter(e); + base.OnPointerEntered(e); } protected override void OnPointerLeave(PointerEventArgs e) { diff --git a/src/Avalonia.Controls/Calendar/CalendarItem.cs b/src/Avalonia.Controls/Calendar/CalendarItem.cs index bcac6324ba4..4c958c83b7d 100644 --- a/src/Avalonia.Controls/Calendar/CalendarItem.cs +++ b/src/Avalonia.Controls/Calendar/CalendarItem.cs @@ -189,7 +189,7 @@ private void PopulateGrids() EventHandler cellMouseLeftButtonDown = Cell_MouseLeftButtonDown; EventHandler cellMouseLeftButtonUp = Cell_MouseLeftButtonUp; - EventHandler cellMouseEnter = Cell_MouseEnter; + EventHandler cellMouseEntered = Cell_MouseEntered; EventHandler cellClick = Cell_Click; for (int i = 1; i < Calendar.RowsPerMonth; i++) @@ -206,7 +206,7 @@ private void PopulateGrids() cell.SetValue(Grid.ColumnProperty, j); cell.CalendarDayButtonMouseDown += cellMouseLeftButtonDown; cell.CalendarDayButtonMouseUp += cellMouseLeftButtonUp; - cell.PointerEnter += cellMouseEnter; + cell.PointerEntered += cellMouseEntered; cell.Click += cellClick; children.Add(cell); } @@ -222,7 +222,7 @@ private void PopulateGrids() EventHandler monthCalendarButtonMouseDown = Month_CalendarButtonMouseDown; EventHandler monthCalendarButtonMouseUp = Month_CalendarButtonMouseUp; - EventHandler monthMouseEnter = Month_MouseEnter; + EventHandler monthMouseEntered = Month_MouseEntered; for (int i = 0; i < Calendar.RowsPerYear; i++) { @@ -238,7 +238,7 @@ private void PopulateGrids() month.SetValue(Grid.ColumnProperty, j); month.CalendarLeftMouseButtonDown += monthCalendarButtonMouseDown; month.CalendarLeftMouseButtonUp += monthCalendarButtonMouseUp; - month.PointerEnter += monthMouseEnter; + month.PointerEntered += monthMouseEntered; children.Add(month); } } @@ -876,7 +876,7 @@ internal void NextButton_Click(object? sender, RoutedEventArgs e) } } - internal void Cell_MouseEnter(object? sender, PointerEventArgs e) + internal void Cell_MouseEntered(object? sender, PointerEventArgs e) { if (Owner != null) { @@ -1162,7 +1162,7 @@ internal void Month_CalendarButtonMouseUp(object? sender, PointerReleasedEventAr } } - private void Month_MouseEnter(object? sender, PointerEventArgs e) + private void Month_MouseEntered(object? sender, PointerEventArgs e) { if (_isMouseLeftButtonDownYearView) { diff --git a/src/Avalonia.Controls/GridSplitter.cs b/src/Avalonia.Controls/GridSplitter.cs index 784d33ed586..85dad894fdf 100644 --- a/src/Avalonia.Controls/GridSplitter.cs +++ b/src/Avalonia.Controls/GridSplitter.cs @@ -349,9 +349,9 @@ private void SetupPreviewAdorner() } } - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { - base.OnPointerEnter(e); + base.OnPointerEntered(e); GridResizeDirection direction = GetEffectiveResizeDirection(); diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index 58229a17724..106b0b27a50 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -82,10 +82,10 @@ public class MenuItem : HeaderedSelectingItemsControl, IMenuItem, ISelectable, I RoutedEvent.Register(nameof(Click), RoutingStrategies.Bubble); /// - /// Defines the event. + /// Defines the event. /// - public static readonly RoutedEvent PointerEnterItemEvent = - RoutedEvent.Register(nameof(PointerEnterItem), RoutingStrategies.Bubble); + public static readonly RoutedEvent PointerEnteredItemEvent = + RoutedEvent.Register(nameof(PointerEnteredItem), RoutingStrategies.Bubble); /// /// Defines the event. @@ -174,12 +174,12 @@ public event EventHandler? Click /// Occurs when the pointer enters a menu item. /// /// - /// A bubbling version of the event for menu items. + /// A bubbling version of the event for menu items. /// - public event EventHandler? PointerEnterItem + public event EventHandler? PointerEnteredItem { - add { AddHandler(PointerEnterItemEvent, value); } - remove { RemoveHandler(PointerEnterItemEvent, value); } + add { AddHandler(PointerEnteredItemEvent, value); } + remove { RemoveHandler(PointerEnteredItemEvent, value); } } /// @@ -437,12 +437,12 @@ protected override void OnKeyDown(KeyEventArgs e) } /// - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { - base.OnPointerEnter(e); + base.OnPointerEntered(e); var point = e.GetCurrentPoint(null); - RaiseEvent(new PointerEventArgs(PointerEnterItemEvent, this, e.Pointer, this.VisualRoot, point.Position, + RaiseEvent(new PointerEventArgs(PointerEnteredItemEvent, this, e.Pointer, this.VisualRoot, point.Position, e.Timestamp, point.Properties, e.KeyModifiers)); } diff --git a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs index 3a6d06f1508..74fc3a7328c 100644 --- a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs +++ b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs @@ -53,8 +53,8 @@ public virtual void Attach(IMenu menu) Menu.PointerPressed += PointerPressed; Menu.PointerReleased += PointerReleased; Menu.AddHandler(AccessKeyHandler.AccessKeyPressedEvent, AccessKeyPressed); - Menu.AddHandler(Avalonia.Controls.Menu.MenuOpenedEvent, this.MenuOpened); - Menu.AddHandler(MenuItem.PointerEnterItemEvent, PointerEnter); + Menu.AddHandler(Avalonia.Controls.Menu.MenuOpenedEvent, MenuOpened); + Menu.AddHandler(MenuItem.PointerEnteredItemEvent, PointerEntered); Menu.AddHandler(MenuItem.PointerLeaveItemEvent, PointerLeave); Menu.AddHandler(InputElement.PointerMovedEvent, PointerMoved); @@ -89,8 +89,8 @@ public virtual void Detach(IMenu menu) Menu.PointerPressed -= PointerPressed; Menu.PointerReleased -= PointerReleased; Menu.RemoveHandler(AccessKeyHandler.AccessKeyPressedEvent, AccessKeyPressed); - Menu.RemoveHandler(Avalonia.Controls.Menu.MenuOpenedEvent, this.MenuOpened); - Menu.RemoveHandler(MenuItem.PointerEnterItemEvent, PointerEnter); + Menu.RemoveHandler(Avalonia.Controls.Menu.MenuOpenedEvent, MenuOpened); + Menu.RemoveHandler(MenuItem.PointerEnteredItemEvent, PointerEntered); Menu.RemoveHandler(MenuItem.PointerLeaveItemEvent, PointerLeave); Menu.RemoveHandler(InputElement.PointerMovedEvent, PointerMoved); @@ -297,7 +297,7 @@ protected internal virtual void AccessKeyPressed(object? sender, RoutedEventArgs e.Handled = true; } - protected internal virtual void PointerEnter(object? sender, PointerEventArgs e) + protected internal virtual void PointerEntered(object? sender, PointerEventArgs e) { var item = GetMenuItem(e.Source as IControl); diff --git a/src/Avalonia.Controls/Primitives/ScrollBar.cs b/src/Avalonia.Controls/Primitives/ScrollBar.cs index e5c3392faf1..266755eedbe 100644 --- a/src/Avalonia.Controls/Primitives/ScrollBar.cs +++ b/src/Avalonia.Controls/Primitives/ScrollBar.cs @@ -218,9 +218,9 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang } } - protected override void OnPointerEnter(PointerEventArgs e) + protected override void OnPointerEntered(PointerEventArgs e) { - base.OnPointerEnter(e); + base.OnPointerEntered(e); if (AllowAutoHide) { diff --git a/src/Avalonia.Controls/ToolTipService.cs b/src/Avalonia.Controls/ToolTipService.cs index a3100ff296a..36f03438baa 100644 --- a/src/Avalonia.Controls/ToolTipService.cs +++ b/src/Avalonia.Controls/ToolTipService.cs @@ -26,13 +26,13 @@ internal void TipChanged(AvaloniaPropertyChangedEventArgs e) if (e.OldValue != null) { - control.PointerEnter -= ControlPointerEnter; + control.PointerEntered -= ControlPointerEntered; control.PointerLeave -= ControlPointerLeave; } if (e.NewValue != null) { - control.PointerEnter += ControlPointerEnter; + control.PointerEntered += ControlPointerEntered; control.PointerLeave += ControlPointerLeave; } @@ -80,7 +80,7 @@ private void ControlDetaching(object? sender, VisualTreeAttachmentEventArgs e) /// /// The event sender. /// The event args. - private void ControlPointerEnter(object? sender, PointerEventArgs e) + private void ControlPointerEntered(object? sender, PointerEventArgs e) { StopTimer(); diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs index 58807b489ea..7042774fa12 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs @@ -121,7 +121,7 @@ private void TreeViewItemTemplateApplied(object? sender, TemplateAppliedEventArg if (header != null) { - header.PointerEnter += AddAdorner; + header.PointerEntered += AddAdorner; header.PointerLeave += RemoveAdorner; } diff --git a/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs b/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs index 87df65a0808..f35b4edf622 100644 --- a/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs @@ -189,7 +189,7 @@ public void IsPointerOver_Should_Be_Updated_When_Child_Sets_Handled_True() // Ensure that e.Handled is reset between controls. root.PointerMoved += (s, e) => e.Handled = true; - decorator.PointerEnter += (s, e) => e.Handled = true; + decorator.PointerEntered += (s, e) => e.Handled = true; SetHit(renderer, decorator); impl.Object.Input!(CreateRawPointerMovedArgs(device, root)); @@ -231,7 +231,7 @@ void HandleEvent(object? sender, PointerEventArgs e) } }); - AddEnterLeaveHandlers(HandleEvent, canvas, decorator); + AddEnteredExitedHandlers(HandleEvent, canvas, decorator); // Enter decorator SetHit(renderer, decorator); @@ -246,17 +246,17 @@ void HandleEvent(object? sender, PointerEventArgs e) Assert.Equal( new[] { - ((object?)decorator, "PointerEnter"), - (decorator, "PointerMoved"), - (decorator, "PointerLeave"), - (canvas, "PointerEnter"), - (canvas, "PointerMoved") + ((object?)decorator, nameof(InputElement.PointerEntered)), + (decorator, nameof(InputElement.PointerMoved)), + (decorator, nameof(InputElement.PointerLeave)), + (canvas, nameof(InputElement.PointerEntered)), + (canvas, nameof(InputElement.PointerMoved)) }, result); } [Fact] - public void PointerEnter_Leave_Should_Be_Raised_In_Correct_Order() + public void PointerEntered_Exited_Should_Be_Raised_In_Correct_Order() { using var app = UnitTestApplication.Start(new TestServices(inputManager: new InputManager())); @@ -289,7 +289,7 @@ void HandleEvent(object? sender, PointerEventArgs e) SetHit(renderer, canvas); impl.Object.Input!(CreateRawPointerMovedArgs(deviceMock.Object, root)); - AddEnterLeaveHandlers(HandleEvent, root, canvas, border, decorator); + AddEnteredExitedHandlers(HandleEvent, root, canvas, border, decorator); SetHit(renderer, decorator); impl.Object.Input!(CreateRawPointerMovedArgs(deviceMock.Object, root)); @@ -297,16 +297,16 @@ void HandleEvent(object? sender, PointerEventArgs e) Assert.Equal( new[] { - ((object?)canvas, "PointerLeave"), - (decorator, "PointerEnter"), - (border, "PointerEnter"), + ((object?)canvas, nameof(InputElement.PointerLeave)), + (decorator, nameof(InputElement.PointerEntered)), + (border, nameof(InputElement.PointerEntered)), }, result); } // https://github.com/AvaloniaUI/Avalonia/issues/7896 [Fact] - public void PointerEnter_Leave_Should_Set_Correct_Position() + public void PointerEntered_Exited_Should_Set_Correct_Position() { using var app = UnitTestApplication.Start(new TestServices(inputManager: new InputManager())); @@ -331,7 +331,7 @@ void HandleEvent(object? sender, PointerEventArgs e) } }); - AddEnterLeaveHandlers(HandleEvent, root, canvas); + AddEnteredExitedHandlers(HandleEvent, root, canvas); SetHit(renderer, canvas); impl.Object.Input!(CreateRawPointerMovedArgs(deviceMock.Object, root, expectedPosition)); @@ -342,10 +342,10 @@ void HandleEvent(object? sender, PointerEventArgs e) Assert.Equal( new[] { - ((object?)canvas, "PointerEnter", expectedPosition), - (root, "PointerEnter", expectedPosition), - (canvas, "PointerLeave", expectedPosition), - (root, "PointerLeave", expectedPosition) + ((object?)canvas, nameof(InputElement.PointerEntered), expectedPosition), + (root, nameof(InputElement.PointerEntered), expectedPosition), + (canvas, nameof(InputElement.PointerLeave), expectedPosition), + (root, nameof(InputElement.PointerLeave), expectedPosition) }, result); } @@ -415,7 +415,7 @@ void HandleEvent(object? sender, PointerEventArgs e) } }); - AddEnterLeaveHandlers(HandleEvent, root, canvas); + AddEnteredExitedHandlers(HandleEvent, root, canvas); // Init pointer over. SetHit(renderer, canvas); @@ -429,21 +429,21 @@ void HandleEvent(object? sender, PointerEventArgs e) Assert.Equal( new[] { - ((object?)canvas, "PointerEnter", lastClientPosition), - (root, "PointerEnter", lastClientPosition), - (canvas, "PointerLeave", lastClientPosition), - (root, "PointerLeave", lastClientPosition), + ((object?)canvas, nameof(InputElement.PointerEntered), lastClientPosition), + (root, nameof(InputElement.PointerEntered), lastClientPosition), + (canvas, nameof(InputElement.PointerLeave), lastClientPosition), + (root, nameof(InputElement.PointerLeave), lastClientPosition), }, result); } - private static void AddEnterLeaveHandlers( + private static void AddEnteredExitedHandlers( EventHandler handler, params IInputElement[] controls) { foreach (var c in controls) { - c.PointerEnter += handler; + c.PointerEntered += handler; c.PointerLeave += handler; c.PointerMoved += handler; } diff --git a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs index 2e3623cc3cf..b93afcf4ac1 100644 --- a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs @@ -150,7 +150,7 @@ public void Button_Raises_Click() target.Click += (s, e) => clicked = true; - RaisePointerEnter(target); + RaisePointerEntered(target); RaisePointerMove(target, pt); RaisePointerPressed(target, 1, MouseButton.Left, pt); @@ -182,7 +182,7 @@ public void Button_Does_Not_Raise_Click_When_PointerReleased_Outside() target.Click += (s, e) => clicked = true; - RaisePointerEnter(target); + RaisePointerEntered(target); RaisePointerMove(target, new Point(50,50)); RaisePointerPressed(target, 1, MouseButton.Left, new Point(50, 50)); RaisePointerLeave(target); @@ -224,7 +224,7 @@ public void Button_With_RenderTransform_Raises_Click() target.Click += (s, e) => clicked = true; - RaisePointerEnter(target); + RaisePointerEntered(target); RaisePointerMove(target, pt); RaisePointerPressed(target, 1, MouseButton.Left, pt); @@ -422,7 +422,7 @@ private void RaisePointerReleased(Button button, MouseButton mouseButton, Point _helper.Up(button, mouseButton, pt); } - private void RaisePointerEnter(Button button) + private void RaisePointerEntered(Button button) { _helper.Enter(button); } diff --git a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs index d22a67f389e..0dd7ccf16ed 100644 --- a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs @@ -174,7 +174,7 @@ public void Click_On_Open_TopLevel_Menu_Closes_Menu() } [Fact] - public void PointerEnter_Opens_Item_When_Old_Item_Is_Open() + public void PointerEntered_Opens_Item_When_Old_Item_Is_Open() { var target = new DefaultMenuInteractionHandler(false); var menu = new Mock(); @@ -187,11 +187,11 @@ public void PointerEnter_Opens_Item_When_Old_Item_Is_Open() x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu.Object); - var e = CreateArgs(MenuItem.PointerEnterItemEvent, nextItem); + var e = CreateArgs(MenuItem.PointerEnteredItemEvent, nextItem); menu.SetupGet(x => x.SelectedItem).Returns(item); - target.PointerEnter(nextItem, e); + target.PointerEntered(nextItem, e); Mock.Get(item).Verify(x => x.Close()); menu.VerifySet(x => x.SelectedItem = nextItem); @@ -382,31 +382,31 @@ public void Escape_Closes_Parent_MenuItem() } [Fact] - public void PointerEnter_Selects_Item() + public void PointerEntered_Selects_Item() { var target = new DefaultMenuInteractionHandler(false); var menu = Mock.Of(); var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem); - var e = CreateArgs(MenuItem.PointerEnterItemEvent, item); + var e = CreateArgs(MenuItem.PointerEnteredItemEvent, item); - target.PointerEnter(item, e); + target.PointerEntered(item, e); Mock.Get(parentItem).VerifySet(x => x.SelectedItem = item); Assert.False(e.Handled); } [Fact] - public void PointerEnter_Opens_Submenu_After_Delay() + public void PointerEntered_Opens_Submenu_After_Delay() { var timer = new TestTimer(); var target = new DefaultMenuInteractionHandler(false, null, timer.RunOnce); var menu = Mock.Of(); var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem && x.HasSubMenu == true); - var e = CreateArgs(MenuItem.PointerEnterItemEvent, item); + var e = CreateArgs(MenuItem.PointerEnteredItemEvent, item); - target.PointerEnter(item, e); + target.PointerEntered(item, e); Mock.Get(item).Verify(x => x.Open(), Times.Never); timer.Pulse(); @@ -416,7 +416,7 @@ public void PointerEnter_Opens_Submenu_After_Delay() } [Fact] - public void PointerEnter_Closes_Sibling_Submenu_After_Delay() + public void PointerEntered_Closes_Sibling_Submenu_After_Delay() { var timer = new TestTimer(); var target = new DefaultMenuInteractionHandler(false, null, timer.RunOnce); @@ -424,11 +424,11 @@ public void PointerEnter_Closes_Sibling_Submenu_After_Delay() var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem); var sibling = Mock.Of(x => x.Parent == parentItem && x.HasSubMenu == true && x.IsSubMenuOpen == true); - var e = CreateArgs(MenuItem.PointerEnterItemEvent, item); + var e = CreateArgs(MenuItem.PointerEnteredItemEvent, item); Mock.Get(parentItem).SetupGet(x => x.SubItems).Returns(new[] { item, sibling }); - target.PointerEnter(item, e); + target.PointerEntered(item, e); Mock.Get(sibling).Verify(x => x.Close(), Times.Never); timer.Pulse(); @@ -510,11 +510,11 @@ public void Selection_Is_Correct_When_Pointer_Temporarily_Exits_Item_To_Select_S var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem && x.HasSubMenu == true); var childItem = Mock.Of(x => x.Parent == item); - var enter = CreateArgs(MenuItem.PointerEnterItemEvent, item); + var enter = CreateArgs(MenuItem.PointerEnteredItemEvent, item); var leave = CreateArgs(MenuItem.PointerLeaveItemEvent, item); // Pointer enters item; item is selected. - target.PointerEnter(item, enter); + target.PointerEntered(item, enter); Assert.True(timer.ActionIsQueued); Mock.Get(parentItem).VerifySet(x => x.SelectedItem = item); Mock.Get(parentItem).Invocations.Clear(); @@ -532,7 +532,7 @@ public void Selection_Is_Correct_When_Pointer_Temporarily_Exits_Item_To_Select_S // Pointer enters child item; is selected. enter.Source = childItem; - target.PointerEnter(childItem, enter); + target.PointerEntered(childItem, enter); Mock.Get(item).VerifySet(x => x.SelectedItem = childItem); Mock.Get(parentItem).VerifySet(x => x.SelectedItem = item); Mock.Get(item).Invocations.Clear(); diff --git a/tests/Avalonia.UnitTests/MouseTestHelper.cs b/tests/Avalonia.UnitTests/MouseTestHelper.cs index 6c2d6d4b62b..3b2d649cd6f 100644 --- a/tests/Avalonia.UnitTests/MouseTestHelper.cs +++ b/tests/Avalonia.UnitTests/MouseTestHelper.cs @@ -107,7 +107,7 @@ public void Click(IInteractive target, IInteractive source, MouseButton button = public void Enter(IInteractive target) { - target.RaiseEvent(new PointerEventArgs(InputElement.PointerEnterEvent, target, _pointer, (IVisual)target, default, + target.RaiseEvent(new PointerEventArgs(InputElement.PointerEnteredEvent, target, _pointer, (IVisual)target, default, Timestamp(), new PointerPointProperties((RawInputModifiers)_pressedButtons, PointerUpdateKind.Other), KeyModifiers.None)); } From 0863a05c7684f411aa7436deb2c7d200d9675b19 Mon Sep 17 00:00:00 2001 From: robloo Date: Sun, 26 Jun 2022 19:05:43 -0400 Subject: [PATCH 2/2] Rename PointerLeave to PointerExited --- src/Avalonia.Base/Input/IInputElement.cs | 2 +- src/Avalonia.Base/Input/InputElement.cs | 28 +++++++-------- .../Input/PointerOverPreProcessor.cs | 4 +-- .../ColorSpectrum/ColorSpectrum.cs | 12 +++---- .../DataGridCell.cs | 4 +-- .../DataGridColumnHeader.cs | 4 +-- src/Avalonia.Controls.DataGrid/DataGridRow.cs | 4 +-- .../DataGridRowGroupHeader.cs | 4 +-- .../DataGridRowHeader.cs | 4 +-- src/Avalonia.Controls/MenuItem.cs | 34 ++++++++++++------- .../Platform/DefaultMenuInteractionHandler.cs | 6 ++-- src/Avalonia.Controls/Primitives/ScrollBar.cs | 4 +-- src/Avalonia.Controls/ToolTipService.cs | 6 ++-- .../Diagnostics/Views/TreePageView.xaml.cs | 2 +- .../Input/PointerOverTests.cs | 14 ++++---- .../ButtonTests.cs | 4 +-- .../DefaultMenuInteractionHandlerTests.cs | 34 +++++++++---------- tests/Avalonia.UnitTests/MouseTestHelper.cs | 2 +- 18 files changed, 90 insertions(+), 82 deletions(-) diff --git a/src/Avalonia.Base/Input/IInputElement.cs b/src/Avalonia.Base/Input/IInputElement.cs index c6efb851ef6..43ac87d008d 100644 --- a/src/Avalonia.Base/Input/IInputElement.cs +++ b/src/Avalonia.Base/Input/IInputElement.cs @@ -47,7 +47,7 @@ public interface IInputElement : IInteractive, IVisual /// /// Occurs when the pointer leaves the control. /// - event EventHandler? PointerLeave; + event EventHandler? PointerExited; /// /// Occurs when the pointer is pressed over the control. diff --git a/src/Avalonia.Base/Input/InputElement.cs b/src/Avalonia.Base/Input/InputElement.cs index 4affc5e592f..d0130258c35 100644 --- a/src/Avalonia.Base/Input/InputElement.cs +++ b/src/Avalonia.Base/Input/InputElement.cs @@ -136,11 +136,11 @@ public class InputElement : Interactive, IInputElement RoutingStrategies.Direct); /// - /// Defines the event. + /// Defines the event. /// - public static readonly RoutedEvent PointerLeaveEvent = + public static readonly RoutedEvent PointerExitedEvent = RoutedEvent.Register( - nameof(PointerLeave), + nameof(PointerExited), RoutingStrategies.Direct); /// @@ -212,8 +212,8 @@ static InputElement() KeyDownEvent.AddClassHandler((x, e) => x.OnKeyDown(e)); KeyUpEvent.AddClassHandler((x, e) => x.OnKeyUp(e)); TextInputEvent.AddClassHandler((x, e) => x.OnTextInput(e)); - PointerEnteredEvent.AddClassHandler((x, e) => x.OnPointerEnterCore(e)); - PointerLeaveEvent.AddClassHandler((x, e) => x.OnPointerLeaveCore(e)); + PointerEnteredEvent.AddClassHandler((x, e) => x.OnPointerEnteredCore(e)); + PointerExitedEvent.AddClassHandler((x, e) => x.OnPointerExitedCore(e)); PointerMovedEvent.AddClassHandler((x, e) => x.OnPointerMoved(e)); PointerPressedEvent.AddClassHandler((x, e) => x.OnPointerPressed(e)); PointerReleasedEvent.AddClassHandler((x, e) => x.OnPointerReleased(e)); @@ -292,10 +292,10 @@ public event EventHandler? PointerEntered /// /// Occurs when the pointer leaves the control. /// - public event EventHandler? PointerLeave + public event EventHandler? PointerExited { - add { AddHandler(PointerLeaveEvent, value); } - remove { RemoveHandler(PointerLeaveEvent, value); } + add { AddHandler(PointerExitedEvent, value); } + remove { RemoveHandler(PointerExitedEvent, value); } } /// @@ -551,10 +551,10 @@ protected virtual void OnPointerEntered(PointerEventArgs e) } /// - /// Called before the event occurs. + /// Called before the event occurs. /// /// The event args. - protected virtual void OnPointerLeave(PointerEventArgs e) + protected virtual void OnPointerExited(PointerEventArgs e) { } @@ -647,20 +647,20 @@ private static void IsEnabledChanged(AvaloniaPropertyChangedEventArgs e) /// Called before the event occurs. /// /// The event args. - private void OnPointerEnterCore(PointerEventArgs e) + private void OnPointerEnteredCore(PointerEventArgs e) { IsPointerOver = true; OnPointerEntered(e); } /// - /// Called before the event occurs. + /// Called before the event occurs. /// /// The event args. - private void OnPointerLeaveCore(PointerEventArgs e) + private void OnPointerExitedCore(PointerEventArgs e) { IsPointerOver = false; - OnPointerLeave(e); + OnPointerExited(e); } /// diff --git a/src/Avalonia.Base/Input/PointerOverPreProcessor.cs b/src/Avalonia.Base/Input/PointerOverPreProcessor.cs index a62c974881a..67d1eea7e32 100644 --- a/src/Avalonia.Base/Input/PointerOverPreProcessor.cs +++ b/src/Avalonia.Base/Input/PointerOverPreProcessor.cs @@ -97,7 +97,7 @@ private void ClearPointerOver(IPointer pointer, IInputRoot root, // Do not pass rootVisual, when we have unknown (negative) position, // so GetPosition won't return invalid values. var hasPosition = position.X >= 0 && position.Y >= 0; - var e = new PointerEventArgs(InputElement.PointerLeaveEvent, element, pointer, + var e = new PointerEventArgs(InputElement.PointerExitedEvent, element, pointer, hasPosition ? root : null, hasPosition ? position : default, timestamp, properties, inputModifiers); @@ -177,7 +177,7 @@ private void SetPointerOverToElement(IPointer pointer, IInputRoot root, IInputEl el = root.PointerOverElement; - var e = new PointerEventArgs(InputElement.PointerLeaveEvent, el, pointer, root, position, + var e = new PointerEventArgs(InputElement.PointerExitedEvent, el, pointer, root, position, timestamp, properties, inputModifiers); if (el != null && branch != null && !el.IsAttachedToVisualTree) { diff --git a/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs b/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs index d681834c697..7e6b70a1465 100644 --- a/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs +++ b/src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs @@ -129,7 +129,7 @@ protected override void OnApplyTemplate(TemplateAppliedEventArgs e) if (_inputTarget != null) { _inputTarget.PointerEntered += InputTarget_PointerEntered; - _inputTarget.PointerLeave += InputTarget_PointerLeave; + _inputTarget.PointerExited += InputTarget_PointerExited; _inputTarget.PointerPressed += InputTarget_PointerPressed; _inputTarget.PointerMoved += InputTarget_PointerMoved; _inputTarget.PointerReleased += InputTarget_PointerReleased; @@ -195,7 +195,7 @@ private void UnregisterEvents() if (_inputTarget != null) { _inputTarget.PointerEntered -= InputTarget_PointerEntered; - _inputTarget.PointerLeave -= InputTarget_PointerLeave; + _inputTarget.PointerExited -= InputTarget_PointerExited; _inputTarget.PointerPressed -= InputTarget_PointerPressed; _inputTarget.PointerMoved -= InputTarget_PointerMoved; _inputTarget.PointerReleased -= InputTarget_PointerReleased; @@ -362,7 +362,7 @@ protected override void OnLostFocus(RoutedEventArgs e) } /// - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { // We only want to bother with the color name tool tip if we can provide color names. if (_selectionEllipsePanel != null && @@ -373,7 +373,7 @@ protected override void OnPointerLeave(PointerEventArgs e) UpdatePseudoClasses(); - base.OnPointerLeave(e); + base.OnPointerExited(e); } /// @@ -856,8 +856,8 @@ private void InputTarget_PointerEntered(object? sender, PointerEventArgs args) args.Handled = true; } - /// - private void InputTarget_PointerLeave(object? sender, PointerEventArgs args) + /// + private void InputTarget_PointerExited(object? sender, PointerEventArgs args) { _isPointerOver = false; UpdatePseudoClasses(); diff --git a/src/Avalonia.Controls.DataGrid/DataGridCell.cs b/src/Avalonia.Controls.DataGrid/DataGridCell.cs index 9358c348cea..2a51f458967 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridCell.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridCell.cs @@ -148,9 +148,9 @@ protected override void OnPointerEntered(PointerEventArgs e) IsMouseOver = true; } } - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { - base.OnPointerLeave(e); + base.OnPointerExited(e); if (OwningRow != null) { diff --git a/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs b/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs index 897996d8d30..d3bd968d62b 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs @@ -85,7 +85,7 @@ public DataGridColumnHeader() PointerReleased += DataGridColumnHeader_PointerReleased; PointerMoved += DataGridColumnHeader_PointerMoved; PointerEntered += DataGridColumnHeader_PointerEntered; - PointerLeave += DataGridColumnHeader_PointerLeave; + PointerExited += DataGridColumnHeader_PointerExited; } private void OnAreSeparatorsVisibleChanged(AvaloniaPropertyChangedEventArgs e) @@ -464,7 +464,7 @@ private void DataGridColumnHeader_PointerEntered(object sender, PointerEventArgs UpdatePseudoClasses(); } - private void DataGridColumnHeader_PointerLeave(object sender, PointerEventArgs e) + private void DataGridColumnHeader_PointerExited(object sender, PointerEventArgs e) { if (!IsEnabled) { diff --git a/src/Avalonia.Controls.DataGrid/DataGridRow.cs b/src/Avalonia.Controls.DataGrid/DataGridRow.cs index 02c57965fd4..1559763a1b6 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRow.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRow.cs @@ -612,10 +612,10 @@ protected override void OnPointerEntered(PointerEventArgs e) base.OnPointerEntered(e); IsMouseOver = true; } - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { IsMouseOver = false; - base.OnPointerLeave(e); + base.OnPointerExited(e); } internal void ApplyCellsState() diff --git a/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs b/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs index 74ee872e72a..9f37e8a6aa6 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRowGroupHeader.cs @@ -386,7 +386,7 @@ protected override void OnPointerEntered(PointerEventArgs e) base.OnPointerEntered(e); } - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { if (IsEnabled) { @@ -394,7 +394,7 @@ protected override void OnPointerLeave(PointerEventArgs e) UpdatePseudoClasses(); } - base.OnPointerLeave(e); + base.OnPointerExited(e); } private void SetIsCheckedNoCallBack(bool value) diff --git a/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs b/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs index d8775061deb..fe3ba0abf62 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs @@ -167,14 +167,14 @@ protected override void OnPointerEntered(PointerEventArgs e) base.OnPointerEntered(e); } - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { if (OwningRow != null) { OwningRow.IsMouseOver = false; } - base.OnPointerLeave(e); + base.OnPointerExited(e); } //TODO TabStop diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index 106b0b27a50..11c42f2ef36 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -79,25 +79,33 @@ public class MenuItem : HeaderedSelectingItemsControl, IMenuItem, ISelectable, I /// Defines the event. /// public static readonly RoutedEvent ClickEvent = - RoutedEvent.Register(nameof(Click), RoutingStrategies.Bubble); + RoutedEvent.Register( + nameof(Click), + RoutingStrategies.Bubble); /// /// Defines the event. /// public static readonly RoutedEvent PointerEnteredItemEvent = - RoutedEvent.Register(nameof(PointerEnteredItem), RoutingStrategies.Bubble); + RoutedEvent.Register( + nameof(PointerEnteredItem), + RoutingStrategies.Bubble); /// - /// Defines the event. + /// Defines the event. /// - public static readonly RoutedEvent PointerLeaveItemEvent = - RoutedEvent.Register(nameof(PointerLeaveItem), RoutingStrategies.Bubble); + public static readonly RoutedEvent PointerExitedItemEvent = + RoutedEvent.Register( + nameof(PointerExitedItem), + RoutingStrategies.Bubble); /// /// Defines the event. /// public static readonly RoutedEvent SubmenuOpenedEvent = - RoutedEvent.Register(nameof(SubmenuOpened), RoutingStrategies.Bubble); + RoutedEvent.Register( + nameof(SubmenuOpened), + RoutingStrategies.Bubble); /// /// The default value for the property. @@ -186,12 +194,12 @@ public event EventHandler? PointerEnteredItem /// Raised when the pointer leaves a menu item. /// /// - /// A bubbling version of the event for menu items. + /// A bubbling version of the event for menu items. /// - public event EventHandler? PointerLeaveItem + public event EventHandler? PointerExitedItem { - add { AddHandler(PointerLeaveItemEvent, value); } - remove { RemoveHandler(PointerLeaveItemEvent, value); } + add { AddHandler(PointerExitedItemEvent, value); } + remove { RemoveHandler(PointerExitedItemEvent, value); } } /// @@ -447,12 +455,12 @@ protected override void OnPointerEntered(PointerEventArgs e) } /// - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { - base.OnPointerLeave(e); + base.OnPointerExited(e); var point = e.GetCurrentPoint(null); - RaiseEvent(new PointerEventArgs(PointerLeaveItemEvent, this, e.Pointer, this.VisualRoot, point.Position, + RaiseEvent(new PointerEventArgs(PointerExitedItemEvent, this, e.Pointer, this.VisualRoot, point.Position, e.Timestamp, point.Properties, e.KeyModifiers)); } diff --git a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs index 74fc3a7328c..868cce879aa 100644 --- a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs +++ b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs @@ -55,7 +55,7 @@ public virtual void Attach(IMenu menu) Menu.AddHandler(AccessKeyHandler.AccessKeyPressedEvent, AccessKeyPressed); Menu.AddHandler(Avalonia.Controls.Menu.MenuOpenedEvent, MenuOpened); Menu.AddHandler(MenuItem.PointerEnteredItemEvent, PointerEntered); - Menu.AddHandler(MenuItem.PointerLeaveItemEvent, PointerLeave); + Menu.AddHandler(MenuItem.PointerExitedItemEvent, PointerExited); Menu.AddHandler(InputElement.PointerMovedEvent, PointerMoved); _root = Menu.VisualRoot; @@ -91,7 +91,7 @@ public virtual void Detach(IMenu menu) Menu.RemoveHandler(AccessKeyHandler.AccessKeyPressedEvent, AccessKeyPressed); Menu.RemoveHandler(Avalonia.Controls.Menu.MenuOpenedEvent, MenuOpened); Menu.RemoveHandler(MenuItem.PointerEnteredItemEvent, PointerEntered); - Menu.RemoveHandler(MenuItem.PointerLeaveItemEvent, PointerLeave); + Menu.RemoveHandler(MenuItem.PointerExitedItemEvent, PointerExited); Menu.RemoveHandler(InputElement.PointerMovedEvent, PointerMoved); if (_root is InputElement inputRoot) @@ -358,7 +358,7 @@ protected internal virtual void PointerMoved(object? sender, PointerEventArgs e) } } - protected internal virtual void PointerLeave(object? sender, PointerEventArgs e) + protected internal virtual void PointerExited(object? sender, PointerEventArgs e) { var item = GetMenuItem(e.Source as IControl); diff --git a/src/Avalonia.Controls/Primitives/ScrollBar.cs b/src/Avalonia.Controls/Primitives/ScrollBar.cs index 266755eedbe..e524db54440 100644 --- a/src/Avalonia.Controls/Primitives/ScrollBar.cs +++ b/src/Avalonia.Controls/Primitives/ScrollBar.cs @@ -228,9 +228,9 @@ protected override void OnPointerEntered(PointerEventArgs e) } } - protected override void OnPointerLeave(PointerEventArgs e) + protected override void OnPointerExited(PointerEventArgs e) { - base.OnPointerLeave(e); + base.OnPointerExited(e); if (AllowAutoHide) { diff --git a/src/Avalonia.Controls/ToolTipService.cs b/src/Avalonia.Controls/ToolTipService.cs index 36f03438baa..c6efe10488c 100644 --- a/src/Avalonia.Controls/ToolTipService.cs +++ b/src/Avalonia.Controls/ToolTipService.cs @@ -27,13 +27,13 @@ internal void TipChanged(AvaloniaPropertyChangedEventArgs e) if (e.OldValue != null) { control.PointerEntered -= ControlPointerEntered; - control.PointerLeave -= ControlPointerLeave; + control.PointerExited -= ControlPointerExited; } if (e.NewValue != null) { control.PointerEntered += ControlPointerEntered; - control.PointerLeave += ControlPointerLeave; + control.PointerExited += ControlPointerExited; } if (ToolTip.GetIsOpen(control) && e.NewValue != e.OldValue && !(e.NewValue is ToolTip)) @@ -101,7 +101,7 @@ private void ControlPointerEntered(object? sender, PointerEventArgs e) /// /// The event sender. /// The event args. - private void ControlPointerLeave(object? sender, PointerEventArgs e) + private void ControlPointerExited(object? sender, PointerEventArgs e) { var control = (Control)sender!; Close(control); diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs b/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs index 7042774fa12..587898ac6e9 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs @@ -122,7 +122,7 @@ private void TreeViewItemTemplateApplied(object? sender, TemplateAppliedEventArg if (header != null) { header.PointerEntered += AddAdorner; - header.PointerLeave += RemoveAdorner; + header.PointerExited += RemoveAdorner; } item.TemplateApplied -= TreeViewItemTemplateApplied; diff --git a/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs b/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs index f35b4edf622..a5ca2aef4ae 100644 --- a/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/PointerOverTests.cs @@ -248,7 +248,7 @@ void HandleEvent(object? sender, PointerEventArgs e) { ((object?)decorator, nameof(InputElement.PointerEntered)), (decorator, nameof(InputElement.PointerMoved)), - (decorator, nameof(InputElement.PointerLeave)), + (decorator, nameof(InputElement.PointerExited)), (canvas, nameof(InputElement.PointerEntered)), (canvas, nameof(InputElement.PointerMoved)) }, @@ -297,7 +297,7 @@ void HandleEvent(object? sender, PointerEventArgs e) Assert.Equal( new[] { - ((object?)canvas, nameof(InputElement.PointerLeave)), + ((object?)canvas, nameof(InputElement.PointerExited)), (decorator, nameof(InputElement.PointerEntered)), (border, nameof(InputElement.PointerEntered)), }, @@ -344,8 +344,8 @@ void HandleEvent(object? sender, PointerEventArgs e) { ((object?)canvas, nameof(InputElement.PointerEntered), expectedPosition), (root, nameof(InputElement.PointerEntered), expectedPosition), - (canvas, nameof(InputElement.PointerLeave), expectedPosition), - (root, nameof(InputElement.PointerLeave), expectedPosition) + (canvas, nameof(InputElement.PointerExited), expectedPosition), + (root, nameof(InputElement.PointerExited), expectedPosition) }, result); } @@ -431,8 +431,8 @@ void HandleEvent(object? sender, PointerEventArgs e) { ((object?)canvas, nameof(InputElement.PointerEntered), lastClientPosition), (root, nameof(InputElement.PointerEntered), lastClientPosition), - (canvas, nameof(InputElement.PointerLeave), lastClientPosition), - (root, nameof(InputElement.PointerLeave), lastClientPosition), + (canvas, nameof(InputElement.PointerExited), lastClientPosition), + (root, nameof(InputElement.PointerExited), lastClientPosition), }, result); } @@ -444,7 +444,7 @@ private static void AddEnteredExitedHandlers( foreach (var c in controls) { c.PointerEntered += handler; - c.PointerLeave += handler; + c.PointerExited += handler; c.PointerMoved += handler; } } diff --git a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs index b93afcf4ac1..42bdffd908b 100644 --- a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs @@ -185,7 +185,7 @@ public void Button_Does_Not_Raise_Click_When_PointerReleased_Outside() RaisePointerEntered(target); RaisePointerMove(target, new Point(50,50)); RaisePointerPressed(target, 1, MouseButton.Left, new Point(50, 50)); - RaisePointerLeave(target); + RaisePointerExited(target); Assert.Equal(_helper.Captured, target); @@ -427,7 +427,7 @@ private void RaisePointerEntered(Button button) _helper.Enter(button); } - private void RaisePointerLeave(Button button) + private void RaisePointerExited(Button button) { _helper.Leave(button); } diff --git a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs index 0dd7ccf16ed..192734581db 100644 --- a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs @@ -202,31 +202,31 @@ public void PointerEntered_Opens_Item_When_Old_Item_Is_Open() } [Fact] - public void PointerLeave_Deselects_Item_When_Menu_Not_Open() + public void PointerExited_Deselects_Item_When_Menu_Not_Open() { var target = new DefaultMenuInteractionHandler(false); var menu = new Mock(); var item = Mock.Of(x => x.IsTopLevel == true && x.Parent == menu.Object); - var e = CreateArgs(MenuItem.PointerLeaveItemEvent, item); + var e = CreateArgs(MenuItem.PointerExitedItemEvent, item); menu.SetupGet(x => x.SelectedItem).Returns(item); - target.PointerLeave(item, e); + target.PointerExited(item, e); menu.VerifySet(x => x.SelectedItem = null); Assert.False(e.Handled); } [Fact] - public void PointerLeave_Doesnt_Deselect_Item_When_Menu_Open() + public void PointerExited_Doesnt_Deselect_Item_When_Menu_Open() { var target = new DefaultMenuInteractionHandler(false); var menu = new Mock(); var item = Mock.Of(x => x.IsTopLevel == true && x.Parent == menu.Object); - var e = CreateArgs(MenuItem.PointerLeaveItemEvent, item); + var e = CreateArgs(MenuItem.PointerExitedItemEvent, item); menu.SetupGet(x => x.IsOpen).Returns(true); menu.SetupGet(x => x.SelectedItem).Returns(item); - target.PointerLeave(item, e); + target.PointerExited(item, e); menu.VerifySet(x => x.SelectedItem = null, Times.Never); Assert.False(e.Handled); @@ -438,48 +438,48 @@ public void PointerEntered_Closes_Sibling_Submenu_After_Delay() } [Fact] - public void PointerLeave_Deselects_Item() + public void PointerExited_Deselects_Item() { var target = new DefaultMenuInteractionHandler(false); var menu = Mock.Of(); var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem); - var e = CreateArgs(MenuItem.PointerLeaveItemEvent, item); + var e = CreateArgs(MenuItem.PointerExitedItemEvent, item); Mock.Get(parentItem).SetupGet(x => x.SelectedItem).Returns(item); - target.PointerLeave(item, e); + target.PointerExited(item, e); Mock.Get(parentItem).VerifySet(x => x.SelectedItem = null); Assert.False(e.Handled); } [Fact] - public void PointerLeave_Doesnt_Deselect_Sibling() + public void PointerExited_Doesnt_Deselect_Sibling() { var target = new DefaultMenuInteractionHandler(false); var menu = Mock.Of(); var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem); var sibling = Mock.Of(x => x.Parent == parentItem); - var e = CreateArgs(MenuItem.PointerLeaveItemEvent, item); + var e = CreateArgs(MenuItem.PointerExitedItemEvent, item); Mock.Get(parentItem).SetupGet(x => x.SelectedItem).Returns(sibling); - target.PointerLeave(item, e); + target.PointerExited(item, e); Mock.Get(parentItem).VerifySet(x => x.SelectedItem = null, Times.Never); Assert.False(e.Handled); } [Fact] - public void PointerLeave_Doesnt_Deselect_Item_If_Pointer_Over_Submenu() + public void PointerExited_Doesnt_Deselect_Item_If_Pointer_Over_Submenu() { var target = new DefaultMenuInteractionHandler(false); var menu = Mock.Of(); var parentItem = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.Parent == menu); var item = Mock.Of(x => x.Parent == parentItem && x.HasSubMenu == true && x.IsPointerOverSubMenu == true); - var e = CreateArgs(MenuItem.PointerLeaveItemEvent, item); + var e = CreateArgs(MenuItem.PointerExitedItemEvent, item); - target.PointerLeave(item, e); + target.PointerExited(item, e); Mock.Get(parentItem).VerifySet(x => x.SelectedItem = null, Times.Never); Assert.False(e.Handled); @@ -511,7 +511,7 @@ public void Selection_Is_Correct_When_Pointer_Temporarily_Exits_Item_To_Select_S var item = Mock.Of(x => x.Parent == parentItem && x.HasSubMenu == true); var childItem = Mock.Of(x => x.Parent == item); var enter = CreateArgs(MenuItem.PointerEnteredItemEvent, item); - var leave = CreateArgs(MenuItem.PointerLeaveItemEvent, item); + var leave = CreateArgs(MenuItem.PointerExitedItemEvent, item); // Pointer enters item; item is selected. target.PointerEntered(item, enter); @@ -526,7 +526,7 @@ public void Selection_Is_Correct_When_Pointer_Temporarily_Exits_Item_To_Select_S Mock.Get(item).Invocations.Clear(); // Pointer briefly exits item, but submenu remains open. - target.PointerLeave(item, leave); + target.PointerExited(item, leave); Mock.Get(item).Verify(x => x.Close(), Times.Never); Mock.Get(item).Invocations.Clear(); diff --git a/tests/Avalonia.UnitTests/MouseTestHelper.cs b/tests/Avalonia.UnitTests/MouseTestHelper.cs index 3b2d649cd6f..06d53e9ff9e 100644 --- a/tests/Avalonia.UnitTests/MouseTestHelper.cs +++ b/tests/Avalonia.UnitTests/MouseTestHelper.cs @@ -113,7 +113,7 @@ public void Enter(IInteractive target) public void Leave(IInteractive target) { - target.RaiseEvent(new PointerEventArgs(InputElement.PointerLeaveEvent, target, _pointer, (IVisual)target, default, + target.RaiseEvent(new PointerEventArgs(InputElement.PointerExitedEvent, target, _pointer, (IVisual)target, default, Timestamp(), new PointerPointProperties((RawInputModifiers)_pressedButtons, PointerUpdateKind.Other), KeyModifiers.None)); }