From 4ca154ed3166c6af1a3e3f2a3744a63b254a59a9 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Wed, 30 Jul 2025 08:16:44 +0000 Subject: [PATCH] remove textbox holding handler in text selection handle (#19186) --- .../Primitives/TextSelectionCanvas.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls/Primitives/TextSelectionCanvas.cs b/src/Avalonia.Controls/Primitives/TextSelectionCanvas.cs index c99b210665..4248ea65a1 100644 --- a/src/Avalonia.Controls/Primitives/TextSelectionCanvas.cs +++ b/src/Avalonia.Controls/Primitives/TextSelectionCanvas.cs @@ -70,6 +70,10 @@ namespace Avalonia.Controls.Primitives _caretHandle.PointerReleased += Handle_PointerReleased; _endHandle.PointerReleased += Handle_PointerReleased; + _startHandle.Holding += Caret_Holding; + _caretHandle.Holding += Caret_Holding; + _endHandle.Holding += Caret_Holding; + IsVisible = ShowHandles; ClipToBounds = false; @@ -214,7 +218,12 @@ namespace Avalonia.Controls.Primitives public void MoveHandlesToSelection() { - if (_presenter == null || _textBox == null || _startHandle.IsDragging || _endHandle.IsDragging) + if (_presenter == null + || _textBox == null + || _startHandle.IsDragging + || _endHandle.IsDragging + || _textBox.ContextFlyout?.IsOpen == true + || _textBox.ContextMenu?.IsOpen == true) { return; } @@ -268,7 +277,6 @@ namespace Avalonia.Controls.Primitives _textBox.RemoveHandler(TextBox.TextChangingEvent, TextChanged); _textBox.RemoveHandler(KeyDownEvent, TextBoxKeyDown); _textBox.RemoveHandler(PointerReleasedEvent, TextBoxPointerReleased); - _textBox.RemoveHandler(Gestures.HoldingEvent, TextBoxHolding); _textBox.PropertyChanged -= TextBoxPropertyChanged; _textBox.EffectiveViewportChanged -= TextBoxEffectiveViewportChanged; @@ -287,7 +295,6 @@ namespace Avalonia.Controls.Primitives _textBox.AddHandler(TextBox.TextChangingEvent, TextChanged, handledEventsToo: true); _textBox.AddHandler(KeyDownEvent, TextBoxKeyDown, handledEventsToo: true); _textBox.AddHandler(PointerReleasedEvent, TextBoxPointerReleased, handledEventsToo: true); - _textBox.AddHandler(Gestures.HoldingEvent, TextBoxHolding, handledEventsToo: true); _textBox.PropertyChanged += TextBoxPropertyChanged; _textBox.EffectiveViewportChanged += TextBoxEffectiveViewportChanged; @@ -310,7 +317,7 @@ namespace Avalonia.Controls.Primitives } } - private void TextBoxHolding(object? sender, HoldingRoutedEventArgs e) + private void Caret_Holding(object? sender, HoldingRoutedEventArgs e) { if (ShowContextMenu()) e.Handled = true;