From bab421a8e026ece68cbd45ad00af88ab932c9794 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 17 Oct 2018 21:09:00 +0100 Subject: [PATCH] fix keyboard input --- .../Remote/Server/RemoteServerTopLevelImpl.cs | 8 +++++++- .../Remote/PreviewerWindowingPlatform.cs | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs b/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs index 0024644e7e..257e3e9c2a 100644 --- a/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs +++ b/src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs @@ -35,6 +35,8 @@ namespace Avalonia.Controls.Remote.Server { _transport = transport; _transport.OnMessage += OnMessage; + + KeyboardDevice = AvaloniaLocator.Current.GetService(); } private static RawMouseEventType GetAvaloniaEventType (Avalonia.Remote.Protocol.Input.MouseButton button, bool pressed) @@ -209,6 +211,8 @@ namespace Avalonia.Controls.Remote.Server } if(obj is KeyEventMessage key) { + Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); + Dispatcher.UIThread.Post(() => { Input?.Invoke(new RawKeyEventArgs( @@ -221,6 +225,8 @@ namespace Avalonia.Controls.Remote.Server } if(obj is TextInputEventMessage text) { + Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); + Dispatcher.UIThread.Post(() => { Input?.Invoke(new RawTextInputEventArgs( @@ -323,6 +329,6 @@ namespace Avalonia.Controls.Remote.Server public override IMouseDevice MouseDevice { get; } = new MouseDevice(); - public IKeyboardDevice KeyboardDevice { get; } = new KeyboardDevice(); + public IKeyboardDevice KeyboardDevice { get; } } } diff --git a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs index 20acc30118..3b6d071583 100644 --- a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs +++ b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowingPlatform.cs @@ -57,7 +57,8 @@ namespace Avalonia.DesignerSupport.Remote .Bind().ToConstant(threading) .Bind().ToSingleton() .Bind().ToConstant(instance) - .Bind().ToSingleton(); + .Bind().ToSingleton() + .Bind().ToSingleton(); }