diff --git a/native/Avalonia.Native/src/OSX/AvnView.mm b/native/Avalonia.Native/src/OSX/AvnView.mm index 4cc495f321..20070a2f1b 100644 --- a/native/Avalonia.Native/src/OSX/AvnView.mm +++ b/native/Avalonia.Native/src/OSX/AvnView.mm @@ -943,7 +943,7 @@ static void ConvertTilt(NSPoint tilt, float* xTilt, float* yTilt) auto window = (AvnWindow*)[self window]; auto peer = [window automationPeer]; - if (!peer->IsRootProvider()) + if (!peer || !peer->IsRootProvider()) return nil; auto clientPoint = [window convertPointFromScreen:point]; @@ -980,6 +980,9 @@ static void ConvertTilt(NSPoint tilt, float* xTilt, float* yTilt) // of the AvnView. auto window = (AvnWindow*)[self window]; auto peer = [window automationPeer]; + if (!peer) + return; + auto childPeers = peer->GetChildren(); auto childCount = childPeers != nullptr ? childPeers->GetCount() : 0; diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index 79fe095731..da739eb355 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -619,7 +619,7 @@ - (IAvnAutomationPeer* _Nonnull) automationPeer { auto parent = _parent.tryGet(); - if (_automationPeer == nullptr) + if (_automationPeer == nullptr && parent != nullptr) { _automationPeer = parent->BaseEvents->GetAutomationPeer(); _automationNode = new AvnAutomationNode(self);