From 4511be1765f65a8c55f464a1abcd2cc40bbfeb40 Mon Sep 17 00:00:00 2001 From: Julian Preece Date: Tue, 30 May 2023 15:31:33 +0100 Subject: [PATCH] Fix using key modifier for input --- .../HeadlessVncFramebufferSource.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Headless/Avalonia.Headless.Vnc/HeadlessVncFramebufferSource.cs b/src/Headless/Avalonia.Headless.Vnc/HeadlessVncFramebufferSource.cs index b1cedb684e..91ef942723 100644 --- a/src/Headless/Avalonia.Headless.Vnc/HeadlessVncFramebufferSource.cs +++ b/src/Headless/Avalonia.Headless.Vnc/HeadlessVncFramebufferSource.cs @@ -61,12 +61,19 @@ namespace Avalonia.Headless.Vnc session.KeyChanged += (_, args) => { + bool isModifierKey = CheckKeyIsInputModifier(args); + if (isModifierKey) + return; + Key? key = TranslateKey(args.Keysym); if (key == null) return; - //we only care about text input on key up - string? inputText = args.Pressed ? null : KeyToText(args.Keysym); + //we only care about text input on key up if not using Ctrl or Alt + string? inputText = args.Pressed || _keyState.HasFlag(RawInputModifiers.Control) || _keyState.HasFlag(RawInputModifiers.Alt) + ? null + : KeyToText(args.Keysym); + Dispatcher.UIThread.Post(() => { if (args.Pressed)