From acb49d66e992f9d1aa5d79d9d8c4dd0294c8edeb Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 2 Oct 2021 14:37:19 +0200 Subject: [PATCH] Revert "Try to fix problem with ComboBox." This reverts commit c34a825bf5507a2ea87c9afd9e6cea3ff53c7594. --- .../Automation/Peers/PopupAutomationPeer.cs | 11 +++++------ src/Avalonia.Controls/Control.cs | 6 ------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs index 0f534e6aeb..4bad8fd108 100644 --- a/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/PopupAutomationPeer.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using Avalonia.Automation.Platform; using Avalonia.Controls; -using Avalonia.Controls.Diagnostics; using Avalonia.Controls.Primitives; using Avalonia.VisualTree; @@ -21,9 +20,9 @@ namespace Avalonia.Automation.Peers protected override IReadOnlyList? GetChildrenCore() { - var popupHost = ((IPopupHostProvider)Owner)?.PopupHost as Control; - var hostPeer = popupHost?.GetAutomationPeer(); - return hostPeer is object ? new[] { hostPeer } : null; + var host = (IVisualTreeHost)Owner; + System.Diagnostics.Debug.WriteLine($"Popup children='{host}'"); + return host.Root is Control c ? new[] { GetOrCreatePeer(c) } : null; } protected override bool IsContentElementCore() => false; @@ -46,8 +45,8 @@ namespace Avalonia.Automation.Peers private AutomationPeer? GetPopupRoot() { - var popupRoot = ((IPopupHostProvider)Owner).PopupHost as Control; - return popupRoot?.GetAutomationPeer(); + var popupRoot = ((IVisualTreeHost)Owner).Root as Control; + return popupRoot is object ? GetOrCreatePeer(popupRoot) : null; } } } diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index f2e2cd1d8f..60acaf82db 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -235,12 +235,6 @@ namespace Avalonia.Controls return new NoneAutomationPeer(factory, this); } - internal AutomationPeer? GetAutomationPeer() - { - VerifyAccess(); - return _automationPeer; - } - internal AutomationPeer GetOrCreateAutomationPeer(IAutomationNodeFactory factory) { VerifyAccess();