|
|
@@ -1000,6 +1000,26 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
Assert.Equal(new[] { "Bar" }, selectedItems);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void MoveSelection_Wrap_Does_Not_Hang_With_No_Focusable_Controls()
|
|
|
+ {
|
|
|
+ // Issue #3094.
|
|
|
+ var target = new TestSelector
|
|
|
+ {
|
|
|
+ Template = Template(),
|
|
|
+ Items = new[]
|
|
|
+ {
|
|
|
+ new ListBoxItem { Focusable = false },
|
|
|
+ new ListBoxItem { Focusable = false },
|
|
|
+ },
|
|
|
+ SelectedIndex = 0,
|
|
|
+ };
|
|
|
+
|
|
|
+ target.Measure(new Size(100, 100));
|
|
|
+ target.Arrange(new Rect(0, 0, 100, 100));
|
|
|
+ target.MoveSelection(NavigationDirection.Next, true);
|
|
|
+ }
|
|
|
+
|
|
|
private FuncControlTemplate Template()
|
|
|
{
|
|
|
return new FuncControlTemplate<SelectingItemsControl>((control, scope) =>
|
|
|
@@ -1044,5 +1064,13 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
public List<string> Items { get; set; } = new List<string>() { "a", "b", "c", "d", "e" };
|
|
|
public string Selected { get; set; } = "b";
|
|
|
}
|
|
|
+
|
|
|
+ private class TestSelector : SelectingItemsControl
|
|
|
+ {
|
|
|
+ public new bool MoveSelection(NavigationDirection direction, bool wrap)
|
|
|
+ {
|
|
|
+ return base.MoveSelection(direction, wrap);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|