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(); }