Browse Source

Merge pull request #3557 from AvaloniaUI/fixes/3426-selecting-disabled-control

Don't select disabled controls with keyboard
release/0.9.4
Steven Kirk 7 years ago
committed by Dan Walmsley
parent
commit
8e452a1e4f
  1. 5
      src/Avalonia.Controls/ItemsControl.cs
  2. 22
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

5
src/Avalonia.Controls/ItemsControl.cs

@ -504,7 +504,10 @@ namespace Avalonia.Controls
result = container.GetControl(direction, c, wrap);
from = from ?? result;
if (result?.Focusable == true)
if (result != null &&
result.Focusable &&
result.IsEffectivelyEnabled &&
result.IsEffectivelyVisible)
{
return result;
}

22
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

@ -1202,6 +1202,28 @@ namespace Avalonia.Controls.UnitTests.Primitives
target.MoveSelection(NavigationDirection.Next, true);
}
[Fact]
public void MoveSelection_Does_Select_Disabled_Controls()
{
// Issue #3426.
var target = new TestSelector
{
Template = Template(),
Items = new[]
{
new ListBoxItem(),
new ListBoxItem { IsEnabled = false },
},
SelectedIndex = 0,
};
target.Measure(new Size(100, 100));
target.Arrange(new Rect(0, 0, 100, 100));
target.MoveSelection(NavigationDirection.Next, true);
Assert.Equal(0, target.SelectedIndex);
}
[Fact]
public void Pre_Selecting_Item_Should_Set_Selection_After_It_Was_Added_When_AlwaysSelected()
{

Loading…
Cancel
Save