From 7a1e9fbfbb2c605c4a23a69146106c895772a7d4 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 22 Mar 2023 11:52:38 +0100 Subject: [PATCH] fix: Properly handle FocusManager focus directions --- src/Uno.UI/UI/Xaml/Input/FocusManager.cs | 26 ++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/Input/FocusManager.cs b/src/Uno.UI/UI/Xaml/Input/FocusManager.cs index 0bf9452d45..994eef93e0 100644 --- a/src/Uno.UI/UI/Xaml/Input/FocusManager.cs +++ b/src/Uno.UI/UI/Xaml/Input/FocusManager.cs @@ -206,6 +206,13 @@ namespace Windows.UI.Xaml.Input "Undefined focus navigation direction was used."); } + if (focusNavigationDirection == FocusNavigationDirection.None) + { + throw new ArgumentOutOfRangeException( + "Focus navigation direction None is not supported in TryMoveFocus", + nameof(focusNavigationDirection)); + } + return TryMoveFocusImpl(focusNavigationDirection); } @@ -231,12 +238,10 @@ namespace Windows.UI.Xaml.Input "Invalid value of focus navigation direction was used."); } - if (focusNavigationDirection == FocusNavigationDirection.Next || - focusNavigationDirection == FocusNavigationDirection.Previous || - focusNavigationDirection == FocusNavigationDirection.None) + if (focusNavigationDirection == FocusNavigationDirection.None) { throw new ArgumentOutOfRangeException( - "Focus navigation directions Next, Previous, and None are not supported when using FindNextElementOptions", + "Focus navigation direction None is not supported in TryMoveFocus", nameof(focusNavigationDirection)); } @@ -263,6 +268,13 @@ namespace Windows.UI.Xaml.Input "Undefined focus navigation direction was used."); } + if (focusNavigationDirection == FocusNavigationDirection.None) + { + throw new ArgumentOutOfRangeException( + "Focus navigation direction None is not supported in TryMoveFocusAsync", + nameof(focusNavigationDirection)); + } + return TryMoveFocusAsyncImpl(focusNavigationDirection); } @@ -282,12 +294,10 @@ namespace Windows.UI.Xaml.Input "Invalid value of focus navigation direction was used."); } - if (focusNavigationDirection == FocusNavigationDirection.Next || - focusNavigationDirection == FocusNavigationDirection.Previous || - focusNavigationDirection == FocusNavigationDirection.None) + if (focusNavigationDirection == FocusNavigationDirection.None) { throw new ArgumentOutOfRangeException( - "Focus navigation directions Next, Previous, and None are not supported when using FindNextElementOptions", + "Focus navigation direction None is not supported in TryMoveFocusAsync", nameof(focusNavigationDirection)); } -- GitLab