Ignore keypresses during IME composition (#1573)

Some IMEs continue sending keypresses even during composition, so we 
just ignore them.
This commit is contained in:
Guldoman 2023-10-18 06:46:27 +02:00 committed by GitHub
parent cca1c798d2
commit 8ccdcb7820
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 4 deletions

View File

@ -1278,6 +1278,9 @@ function core.on_event(type, ...)
elseif type == "textediting" then elseif type == "textediting" then
ime.on_text_editing(...) ime.on_text_editing(...)
elseif type == "keypressed" then elseif type == "keypressed" then
-- In some cases during IME composition input is still sent to us
-- so we just ignore it.
if ime.editing then return false end
did_keymap = keymap.on_key_pressed(...) did_keymap = keymap.on_key_pressed(...)
elseif type == "keyreleased" then elseif type == "keyreleased" then
keymap.on_key_released(...) keymap.on_key_released(...)

View File

@ -203,10 +203,6 @@ end
-- Events listening -- Events listening
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keymap.on_key_pressed(k, ...) function keymap.on_key_pressed(k, ...)
-- In MacOS and Windows during IME composition input is still sent to us
-- so we just ignore it
if PLATFORM ~= "Linux" and ime.editing then return false end
local mk = modkey_map[k] local mk = modkey_map[k]
if mk then if mk then
keymap.modkeys[mk] = true keymap.modkeys[mk] = true