From 4821472ea1c939f6dcf350437f7fd59c7809d221 Mon Sep 17 00:00:00 2001 From: aarzilli Date: Tue, 25 Aug 2020 12:05:35 +0200 Subject: [PATCH] app/internal/xkb: fix events sent when modifier keys are pressed When modifier keys are active DispatchKey should not send a key.EditEvent for the key that was pressed. For example when pressing Ctrl+Alt+e DispatchEvent should not generate a key.EditEvent{Text:"e"}. Signed-off-by: aarzilli --- app/internal/xkb/xkb_unix.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/internal/xkb/xkb_unix.go b/app/internal/xkb/xkb_unix.go index 3525692b..b4a9ff75 100644 --- a/app/internal/xkb/xkb_unix.go +++ b/app/internal/xkb/xkb_unix.go @@ -185,7 +185,10 @@ func (x *Context) DispatchKey(keyCode uint32) (events []event.Event) { C.xkb_compose_state_reset(x.compState) str = x.utf8Buf[:size] case C.XKB_COMPOSE_NOTHING: - str = x.charsForKeycode(kc) + mod := x.Modifiers() + if mod&(key.ModCtrl|key.ModAlt|key.ModSuper) == 0 { + str = x.charsForKeycode(kc) + } } // Report only printable runes. var n int