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

Prevent hang in ItemsControl with no focusable controls.

Steven Kirk преди 6 години
родител
ревизия
60c9015a7f
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      src/Avalonia.Controls/ItemsControl.cs

+ 5 - 3
src/Avalonia.Controls/ItemsControl.cs

@@ -489,18 +489,20 @@ namespace Avalonia.Controls
             bool wrap)
         {
             IInputElement result;
+            var c = from;
 
             do
             {
-                result = container.GetControl(direction, from, wrap);
+                result = container.GetControl(direction, c, wrap);
+                from ??= result;
 
                 if (result?.Focusable == true)
                 {
                     return result;
                 }
 
-                from = result;
-            } while (from != null);
+                c = result;
+            } while (c != null && c != from);
 
             return null;
         }