diff --git a/src/Avalonia.Controls/Automation/AutomationPropertyChangedEventArgs.cs b/src/Avalonia.Controls/Automation/AutomationPropertyChangedEventArgs.cs index b8018613f8..3b7eb70fcb 100644 --- a/src/Avalonia.Controls/Automation/AutomationPropertyChangedEventArgs.cs +++ b/src/Avalonia.Controls/Automation/AutomationPropertyChangedEventArgs.cs @@ -1,7 +1,5 @@ using System; -#nullable enable - namespace Avalonia.Automation { public class AutomationPropertyChangedEventArgs : EventArgs diff --git a/src/Avalonia.Controls/Automation/Peers/AutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/AutomationPeer.cs index 54b2fcc7fa..71421ac136 100644 --- a/src/Avalonia.Controls/Automation/Peers/AutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/AutomationPeer.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -#nullable enable - namespace Avalonia.Automation.Peers { public enum AutomationControlType diff --git a/src/Avalonia.Controls/Automation/Peers/ButtonAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ButtonAutomationPeer.cs index f5d6dce039..4ac07717da 100644 --- a/src/Avalonia.Controls/Automation/Peers/ButtonAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ButtonAutomationPeer.cs @@ -1,8 +1,6 @@ using Avalonia.Automation.Provider; using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class ButtonAutomationPeer : ContentControlAutomationPeer, diff --git a/src/Avalonia.Controls/Automation/Peers/ComboBoxAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ComboBoxAutomationPeer.cs index 0122527950..5ff291d972 100644 --- a/src/Avalonia.Controls/Automation/Peers/ComboBoxAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ComboBoxAutomationPeer.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using Avalonia.Automation.Provider; using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class ComboBoxAutomationPeer : SelectingItemsControlAutomationPeer, @@ -60,7 +58,7 @@ namespace Avalonia.Automation.Peers return null; } - protected override void OwnerPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) + protected override void OwnerPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) { base.OwnerPropertyChanged(sender, e); diff --git a/src/Avalonia.Controls/Automation/Peers/ContentControlAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ContentControlAutomationPeer.cs index 08e4f2a926..df24222a0c 100644 --- a/src/Avalonia.Controls/Automation/Peers/ContentControlAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ContentControlAutomationPeer.cs @@ -1,7 +1,5 @@ using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class ContentControlAutomationPeer : ControlAutomationPeer diff --git a/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs index f7a993e16b..28cb3e34b2 100644 --- a/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs @@ -4,8 +4,6 @@ using System.Linq; using Avalonia.Controls; using Avalonia.VisualTree; -#nullable enable - namespace Avalonia.Automation.Peers { /// @@ -174,9 +172,9 @@ namespace Avalonia.Automation.Peers visualChildren.CollectionChanged += VisualChildrenChanged; } - private void VisualChildrenChanged(object sender, EventArgs e) => InvalidateChildren(); + private void VisualChildrenChanged(object? sender, EventArgs e) => InvalidateChildren(); - private void OwnerPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) + private void OwnerPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) { if (e.Property == Visual.IsVisibleProperty) { diff --git a/src/Avalonia.Controls/Automation/Peers/ItemsControlAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ItemsControlAutomationPeer.cs index 0d35920e19..db16bf0a53 100644 --- a/src/Avalonia.Controls/Automation/Peers/ItemsControlAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ItemsControlAutomationPeer.cs @@ -1,8 +1,6 @@ using Avalonia.Automation.Provider; using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class ItemsControlAutomationPeer : ControlAutomationPeer, IScrollProvider diff --git a/src/Avalonia.Controls/Automation/Peers/ListItemAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ListItemAutomationPeer.cs index 0621e81c1a..ac23873e6a 100644 --- a/src/Avalonia.Controls/Automation/Peers/ListItemAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ListItemAutomationPeer.cs @@ -4,8 +4,6 @@ using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.Controls.Selection; -#nullable enable - namespace Avalonia.Automation.Peers { public class ListItemAutomationPeer : ContentControlAutomationPeer, diff --git a/src/Avalonia.Controls/Automation/Peers/MenuItemAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/MenuItemAutomationPeer.cs index 1994f004d6..c98c5c9a22 100644 --- a/src/Avalonia.Controls/Automation/Peers/MenuItemAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/MenuItemAutomationPeer.cs @@ -1,8 +1,6 @@ using Avalonia.Controls; using Avalonia.Controls.Primitives; -#nullable enable - namespace Avalonia.Automation.Peers { public class MenuItemAutomationPeer : ControlAutomationPeer diff --git a/src/Avalonia.Controls/Automation/Peers/NoneAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/NoneAutomationPeer.cs index a995886179..0f92fed6f3 100644 --- a/src/Avalonia.Controls/Automation/Peers/NoneAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/NoneAutomationPeer.cs @@ -1,7 +1,5 @@ using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { /// diff --git a/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs index 9c24f855f8..25f6ca6e2d 100644 --- a/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs @@ -4,8 +4,6 @@ using Avalonia.Controls; using Avalonia.Controls.Diagnostics; using Avalonia.Controls.Primitives; -#nullable enable - namespace Avalonia.Automation.Peers { public class PopupAutomationPeer : ControlAutomationPeer @@ -26,7 +24,7 @@ namespace Avalonia.Automation.Peers protected override bool IsContentElementCore() => false; protected override bool IsControlElementCore() => false; - private void PopupOpenedClosed(object sender, EventArgs e) + private void PopupOpenedClosed(object? sender, EventArgs e) { // This is golden. We're following WPF's automation peer API here where the // parent of a peer is set when another peer returns it as a child. We want to diff --git a/src/Avalonia.Controls/Automation/Peers/PopupRootAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/PopupRootAutomationPeer.cs index fb717ef98b..cb65682c06 100644 --- a/src/Avalonia.Controls/Automation/Peers/PopupRootAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/PopupRootAutomationPeer.cs @@ -1,8 +1,6 @@ using System; using Avalonia.Controls.Primitives; -#nullable enable - namespace Avalonia.Automation.Peers { public class PopupRootAutomationPeer : WindowBaseAutomationPeer @@ -27,13 +25,13 @@ namespace Avalonia.Automation.Peers return parent; } - private void OnOpened(object sender, EventArgs e) + private void OnOpened(object? sender, EventArgs e) { ((PopupRoot)Owner).Opened -= OnOpened; StartTrackingFocus(); } - private void OnClosed(object sender, EventArgs e) + private void OnClosed(object? sender, EventArgs e) { ((PopupRoot)Owner).Closed -= OnClosed; StopTrackingFocus(); diff --git a/src/Avalonia.Controls/Automation/Peers/RangeBaseAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/RangeBaseAutomationPeer.cs index 1bb487b161..39398933fa 100644 --- a/src/Avalonia.Controls/Automation/Peers/RangeBaseAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/RangeBaseAutomationPeer.cs @@ -1,8 +1,6 @@ using Avalonia.Automation.Provider; using Avalonia.Controls.Primitives; -#nullable enable - namespace Avalonia.Automation.Peers { public abstract class RangeBaseAutomationPeer : ControlAutomationPeer, IRangeValueProvider @@ -23,7 +21,7 @@ namespace Avalonia.Automation.Peers public void SetValue(double value) => Owner.Value = value; - protected virtual void OwnerPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) + protected virtual void OwnerPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) { if (e.Property == RangeBase.MinimumProperty) RaisePropertyChangedEvent(RangeValuePatternIdentifiers.MinimumProperty, e.OldValue, e.NewValue); diff --git a/src/Avalonia.Controls/Automation/Peers/ScrollViewerAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ScrollViewerAutomationPeer.cs index c2474bb9b8..835ed1c4af 100644 --- a/src/Avalonia.Controls/Automation/Peers/ScrollViewerAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ScrollViewerAutomationPeer.cs @@ -3,8 +3,6 @@ using Avalonia.Automation.Provider; using Avalonia.Controls; using Avalonia.Utilities; -#nullable enable - namespace Avalonia.Automation.Peers { public class ScrollViewerAutomationPeer : ControlAutomationPeer, IScrollProvider diff --git a/src/Avalonia.Controls/Automation/Peers/SelectingItemsControlAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/SelectingItemsControlAutomationPeer.cs index f372e3b781..4626e30ff1 100644 --- a/src/Avalonia.Controls/Automation/Peers/SelectingItemsControlAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/SelectingItemsControlAutomationPeer.cs @@ -6,8 +6,6 @@ using Avalonia.Controls.Primitives; using Avalonia.Controls.Selection; using Avalonia.VisualTree; -#nullable enable - namespace Avalonia.Automation.Peers { public abstract class SelectingItemsControlAutomationPeer : ItemsControlAutomationPeer, @@ -62,7 +60,7 @@ namespace Avalonia.Automation.Peers return (Owner as SelectingItemsControl)?.GetValue(ListBox.SelectionModeProperty) ?? SelectionMode.Single; } - protected virtual void OwnerPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) + protected virtual void OwnerPropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e) { if (e.Property == ListBox.SelectionProperty) { @@ -73,7 +71,7 @@ namespace Avalonia.Automation.Peers } } - protected virtual void OwnerSelectionChanged(object sender, SelectionModelSelectionChangedEventArgs e) + protected virtual void OwnerSelectionChanged(object? sender, SelectionModelSelectionChangedEventArgs e) { RaiseSelectionChanged(); } diff --git a/src/Avalonia.Controls/Automation/Peers/TextBlockAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/TextBlockAutomationPeer.cs index 37eaf6f7c0..8a89e38f62 100644 --- a/src/Avalonia.Controls/Automation/Peers/TextBlockAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/TextBlockAutomationPeer.cs @@ -1,7 +1,5 @@ using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class TextBlockAutomationPeer : ControlAutomationPeer diff --git a/src/Avalonia.Controls/Automation/Peers/TextBoxAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/TextBoxAutomationPeer.cs index 33b2ba58b6..9be17afa8c 100644 --- a/src/Avalonia.Controls/Automation/Peers/TextBoxAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/TextBoxAutomationPeer.cs @@ -1,8 +1,6 @@ using Avalonia.Automation.Provider; using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class TextBoxAutomationPeer : ControlAutomationPeer, IValueProvider diff --git a/src/Avalonia.Controls/Automation/Peers/ToggleButtonAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ToggleButtonAutomationPeer.cs index dd0c506d29..979d54f48e 100644 --- a/src/Avalonia.Controls/Automation/Peers/ToggleButtonAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ToggleButtonAutomationPeer.cs @@ -1,8 +1,6 @@ using Avalonia.Automation.Provider; using Avalonia.Controls.Primitives; -#nullable enable - namespace Avalonia.Automation.Peers { public class ToggleButtonAutomationPeer : ContentControlAutomationPeer, IToggleProvider diff --git a/src/Avalonia.Controls/Automation/Peers/UnrealizedElementAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/UnrealizedElementAutomationPeer.cs index b388f21a17..56d5aa79ae 100644 --- a/src/Avalonia.Controls/Automation/Peers/UnrealizedElementAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/UnrealizedElementAutomationPeer.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -#nullable enable - namespace Avalonia.Automation.Peers { /// diff --git a/src/Avalonia.Controls/Automation/Peers/WindowAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/WindowAutomationPeer.cs index fbc6e9d4f4..1162132d54 100644 --- a/src/Avalonia.Controls/Automation/Peers/WindowAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/WindowAutomationPeer.cs @@ -1,8 +1,6 @@ using System; using Avalonia.Controls; -#nullable enable - namespace Avalonia.Automation.Peers { public class WindowAutomationPeer : WindowBaseAutomationPeer @@ -19,15 +17,15 @@ namespace Avalonia.Automation.Peers public new Window Owner => (Window)base.Owner; - protected override string GetNameCore() => Owner.Title; + protected override string? GetNameCore() => Owner.Title; - private void OnOpened(object sender, EventArgs e) + private void OnOpened(object? sender, EventArgs e) { Owner.Opened -= OnOpened; StartTrackingFocus(); } - private void OnClosed(object sender, EventArgs e) + private void OnClosed(object? sender, EventArgs e) { Owner.Closed -= OnClosed; StopTrackingFocus(); diff --git a/src/Avalonia.Controls/Automation/Peers/WindowBaseAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/WindowBaseAutomationPeer.cs index b24685929a..30b56bbd96 100644 --- a/src/Avalonia.Controls/Automation/Peers/WindowBaseAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/WindowBaseAutomationPeer.cs @@ -6,8 +6,6 @@ using Avalonia.Input; using Avalonia.Platform; using Avalonia.VisualTree; -#nullable enable - namespace Avalonia.Automation.Peers { public class WindowBaseAutomationPeer : ControlAutomationPeer, IRootProvider @@ -20,7 +18,7 @@ namespace Avalonia.Automation.Peers } public new WindowBase Owner => (WindowBase)base.Owner; - public ITopLevelImpl PlatformImpl => Owner.PlatformImpl; + public ITopLevelImpl? PlatformImpl => Owner.PlatformImpl; public event EventHandler? FocusChanged; @@ -39,13 +37,17 @@ namespace Avalonia.Automation.Peers protected void StartTrackingFocus() { - KeyboardDevice.Instance.PropertyChanged += KeyboardDevicePropertyChanged; - OnFocusChanged(KeyboardDevice.Instance.FocusedElement); + if (KeyboardDevice.Instance is not null) + { + KeyboardDevice.Instance.PropertyChanged += KeyboardDevicePropertyChanged; + OnFocusChanged(KeyboardDevice.Instance.FocusedElement); + } } protected void StopTrackingFocus() { - KeyboardDevice.Instance.PropertyChanged -= KeyboardDevicePropertyChanged; + if (KeyboardDevice.Instance is not null) + KeyboardDevice.Instance.PropertyChanged -= KeyboardDevicePropertyChanged; } private void OnFocusChanged(IInputElement? focus) @@ -63,11 +65,11 @@ namespace Avalonia.Automation.Peers } } - private void KeyboardDevicePropertyChanged(object sender, PropertyChangedEventArgs e) + private void KeyboardDevicePropertyChanged(object? sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(KeyboardDevice.FocusedElement)) { - OnFocusChanged(KeyboardDevice.Instance.FocusedElement); + OnFocusChanged(KeyboardDevice.Instance!.FocusedElement); } } } diff --git a/src/Avalonia.Controls/Automation/Provider/IRangeValueProvider.cs b/src/Avalonia.Controls/Automation/Provider/IRangeValueProvider.cs index d494e068f7..43a877a21a 100644 --- a/src/Avalonia.Controls/Automation/Provider/IRangeValueProvider.cs +++ b/src/Avalonia.Controls/Automation/Provider/IRangeValueProvider.cs @@ -1,6 +1,4 @@ -#nullable enable - -namespace Avalonia.Automation.Provider +namespace Avalonia.Automation.Provider { /// /// Exposes methods and properties to support access by a UI Automation client to controls diff --git a/src/Avalonia.Controls/Automation/Provider/IRootProvider.cs b/src/Avalonia.Controls/Automation/Provider/IRootProvider.cs index 8ea53863eb..ce38059559 100644 --- a/src/Avalonia.Controls/Automation/Provider/IRootProvider.cs +++ b/src/Avalonia.Controls/Automation/Provider/IRootProvider.cs @@ -2,8 +2,6 @@ using Avalonia.Automation.Peers; using Avalonia.Platform; -#nullable enable - namespace Avalonia.Automation.Provider { public interface IRootProvider diff --git a/src/Avalonia.Controls/Automation/Provider/ISelectionItemProvider .cs b/src/Avalonia.Controls/Automation/Provider/ISelectionItemProvider .cs index 767d6bd7a2..6cea1d1350 100644 --- a/src/Avalonia.Controls/Automation/Provider/ISelectionItemProvider .cs +++ b/src/Avalonia.Controls/Automation/Provider/ISelectionItemProvider .cs @@ -1,6 +1,4 @@ -#nullable enable - -namespace Avalonia.Automation.Provider +namespace Avalonia.Automation.Provider { /// /// Exposes methods and properties to support access by a UI Automation client to individual, diff --git a/src/Avalonia.Controls/Automation/Provider/IValueProvider.cs b/src/Avalonia.Controls/Automation/Provider/IValueProvider.cs index 83dbde4ec2..e025e28782 100644 --- a/src/Avalonia.Controls/Automation/Provider/IValueProvider.cs +++ b/src/Avalonia.Controls/Automation/Provider/IValueProvider.cs @@ -1,6 +1,4 @@ -#nullable enable - -namespace Avalonia.Automation.Provider +namespace Avalonia.Automation.Provider { /// /// Exposes methods and properties to support access by a UI Automation client to controls