From 9122bd63b524e83997e5720639bfc51150508b61 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Tue, 20 Sep 2022 16:10:50 +0200 Subject: [PATCH] Reset InputElement.value on input event --- src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs | 2 ++ .../Interop/InputHelperInterop.cs | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs b/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs index 29522bcfc8..973adf99e5 100644 --- a/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs +++ b/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs @@ -331,6 +331,8 @@ namespace Avalonia.Web.Blazor } _topLevelImpl.RawTextEvent(e.Data); + + e.Handled = true; } private void InputHelperOnCompositionEvent(object? sender, WebCompositionEventArgs e) diff --git a/src/Web/Avalonia.Web.Blazor/Interop/InputHelperInterop.cs b/src/Web/Avalonia.Web.Blazor/Interop/InputHelperInterop.cs index b7e3995dfc..63c3348539 100644 --- a/src/Web/Avalonia.Web.Blazor/Interop/InputHelperInterop.cs +++ b/src/Web/Avalonia.Web.Blazor/Interop/InputHelperInterop.cs @@ -41,6 +41,8 @@ namespace Avalonia.Web.Blazor.Interop public string Type { get; } public string Data { get; } + + public bool Handled { get; set; } } internal class InputHelperInterop @@ -85,7 +87,15 @@ namespace Avalonia.Web.Blazor.Interop private void OnInputEvent(string type, string data) { Console.WriteLine($"InputEvent Handler Helper {InputEvent == null} "); - InputEvent?.Invoke(this, new WebInputEventArgs(type, data)); + + var args = new WebInputEventArgs(type, data); + + InputEvent?.Invoke(this, args); + + if (args.Handled) + { + SetSurroundingText("", 0, 0); + } } public void Clear() => _module.Invoke(ClearSymbol, _inputElement);