Browse Source

Don't handle the input event and instead work with CompositionEnd and KeyDow, KeyUp

pull/12970/head
Benedikt Stebner 3 years ago
parent
commit
5b1de54e81
  1. 18
      src/Browser/Avalonia.Browser/AvaloniaView.cs
  2. 2
      src/Browser/Avalonia.Browser/Interop/InputHelper.cs

18
src/Browser/Avalonia.Browser/AvaloniaView.cs

@ -101,7 +101,6 @@ namespace Avalonia.Browser
InputHelper.SubscribeTextEvents(
_inputElement,
OnBeforeInput,
OnTextInput,
OnCompositionStart,
OnCompositionUpdate,
OnCompositionEnd);
@ -368,16 +367,6 @@ namespace Avalonia.Browser
return _topLevelImpl.RawKeyboardEvent(RawKeyEventType.KeyUp, code, key, (RawInputModifiers)modifier);
}
private bool OnTextInput (string type, string? data)
{
if(data == null || IsComposing)
{
return false;
}
return _topLevelImpl.RawTextEvent(data);
}
private bool OnBeforeInput(JSObject arg, int start, int end)
{
var type = arg.GetPropertyAsString("inputType");
@ -432,6 +421,13 @@ namespace Avalonia.Browser
_client.SetPreeditText(null);
var text = args.GetPropertyAsString("data");
if(text != null)
{
return _topLevelImpl.RawTextEvent(text);
}
return false;
}

2
src/Browser/Avalonia.Browser/Interop/InputHelper.cs

@ -20,8 +20,6 @@ internal static partial class InputHelper
JSObject htmlElement,
[JSMarshalAs<JSType.Function<JSType.Object, JSType.Number, JSType.Number, JSType.Boolean>>]
Func<JSObject, int, int, bool> onBeforeInput,
[JSMarshalAs<JSType.Function<JSType.String, JSType.String, JSType.Boolean>>]
Func<string, string?, bool> onInput,
[JSMarshalAs<JSType.Function<JSType.Object, JSType.Boolean>>]
Func<JSObject, bool> onCompositionStart,
[JSMarshalAs<JSType.Function<JSType.Object, JSType.Boolean>>]

Loading…
Cancel
Save