|
|
@ -356,17 +356,13 @@ namespace Avalonia.Controls.Primitives |
|
|
/// <returns>The container or null if the event did not originate in a container.</returns>
|
|
|
/// <returns>The container or null if the event did not originate in a container.</returns>
|
|
|
protected IControl? GetContainerFromEventSource(IInteractive eventSource) |
|
|
protected IControl? GetContainerFromEventSource(IInteractive eventSource) |
|
|
{ |
|
|
{ |
|
|
var parent = (IVisual)eventSource; |
|
|
for (var current = eventSource as IVisual; current != null; current = current.VisualParent) |
|
|
|
|
|
|
|
|
while (parent != null) |
|
|
|
|
|
{ |
|
|
{ |
|
|
if (parent is IControl control && control.LogicalParent == this |
|
|
if (current is IControl control && control.LogicalParent == this && |
|
|
&& ItemContainerGenerator?.IndexFromContainer(control) != -1) |
|
|
ItemContainerGenerator?.IndexFromContainer(control) != -1) |
|
|
{ |
|
|
{ |
|
|
return control; |
|
|
return control; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
parent = parent.VisualParent; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return null; |
|
|
return null; |
|
|
|