Browse Source

fix nullable reference type warnings.

pull/4974/head
Dan Walmsley 6 years ago
parent
commit
2baae49a12
  1. 25
      src/Avalonia.Input/KeyboardDevice.cs

25
src/Avalonia.Input/KeyboardDevice.cs

@ -43,9 +43,9 @@ namespace Avalonia.Input
} }
} }
private void ClearFocusWithinAncestors(IInputElement element) private void ClearFocusWithinAncestors(IInputElement? element)
{ {
IInputElement el = element; var el = element;
while (el != null) while (el != null)
{ {
@ -60,16 +60,16 @@ namespace Avalonia.Input
private void ClearFocusWithin(IInputElement element, bool clearRoot) private void ClearFocusWithin(IInputElement element, bool clearRoot)
{ {
foreach (IInputElement el in element.VisualChildren) foreach (var visual in element.VisualChildren)
{ {
if (el.IsKeyboardFocusWithin) if (visual is IInputElement el && el.IsKeyboardFocusWithin)
{ {
ClearFocusWithin(el, true); ClearFocusWithin(el, true);
break; break;
} }
} }
if(clearRoot) if (clearRoot)
{ {
if (element is InputElement ie) if (element is InputElement ie)
{ {
@ -78,7 +78,7 @@ namespace Avalonia.Input
} }
} }
private void SetIsFocusWithin(IInputElement oldElement, IInputElement newElement) private void SetIsFocusWithin(IInputElement? oldElement, IInputElement? newElement)
{ {
if (newElement == null && oldElement != null) if (newElement == null && oldElement != null)
{ {
@ -88,7 +88,7 @@ namespace Avalonia.Input
IInputElement? branch = null; IInputElement? branch = null;
IInputElement? el = newElement; var el = newElement;
while (el != null) while (el != null)
{ {
@ -101,7 +101,7 @@ namespace Avalonia.Input
el = (IInputElement)el.VisualParent; el = (IInputElement)el.VisualParent;
} }
el = oldElement!; el = oldElement;
if (el != null && branch != null) if (el != null && branch != null)
{ {
@ -121,17 +121,18 @@ namespace Avalonia.Input
} }
} }
private void ClearChildrenFocusWithin(IInputElement element,bool clearRoot) private void ClearChildrenFocusWithin(IInputElement element, bool clearRoot)
{ {
foreach (IInputElement el in element.VisualChildren) foreach (var visual in element.VisualChildren)
{ {
if (el.IsKeyboardFocusWithin) if (visual is IInputElement el && el.IsKeyboardFocusWithin)
{ {
ClearChildrenFocusWithin(el, true); ClearChildrenFocusWithin(el, true);
break; break;
} }
} }
if(clearRoot && element is InputElement ie)
if (clearRoot && element is InputElement ie)
{ {
ie.IsKeyboardFocusWithin = false; ie.IsKeyboardFocusWithin = false;
} }

Loading…
Cancel
Save