From 7fe2747f41e423c3ab5eef6312f8e352a305a8cb Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Thu, 14 Dec 2023 19:59:46 +0000 Subject: [PATCH] fix double context request from hold gesture (#13948) --- src/Avalonia.Controls/Control.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index 13e2a02fe5..d317d972d2 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -380,10 +380,13 @@ namespace Avalonia.Controls private void OnHoldEvent(object? sender, HoldingRoutedEventArgs e) { - if (!e.Handled && e.HoldingState == HoldingState.Started) + if (e.Source == this && !e.Handled && e.HoldingState == HoldingState.Started) { // Trigger ContentRequest when hold has started - RaiseEvent(e.PointerEventArgs is { } ev ? new ContextRequestedEventArgs(ev) : new ContextRequestedEventArgs()); + var contextEvent = e.PointerEventArgs is { } ev ? new ContextRequestedEventArgs(ev) : new ContextRequestedEventArgs(); + RaiseEvent(contextEvent); + + e.Handled = contextEvent.Handled; } }