From ff607f055978a2f248a4e610f84fe8ca7aaab19b Mon Sep 17 00:00:00 2001 From: Khoa Vo Date: Wed, 1 Jul 2026 11:34:25 +0700 Subject: [PATCH] fix: double space on Ctrl+Space toggle (flush char forwarded twice when engine disabled) --- daemon/src/main.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/daemon/src/main.rs b/daemon/src/main.rs index 98f1580..4a1e38f 100644 --- a/daemon/src/main.rs +++ b/daemon/src/main.rs @@ -1208,9 +1208,11 @@ fn run_with_evdev( if !commands.is_empty() { consumed_keys.insert(keycode); execute_commands(&*injector, &commands, false); - // Flush chars: forward raw key after injection - // (engine no longer includes flush char in insert) - if is_flush_char(ch) { + // Flush chars: forward raw key after injection. + // When engine is disabled (English mode), the Insert event + // already contains the character — forwarding raw key + // would double-inject (double space on Ctrl+Space toggle). + if is_flush_char(ch) && daemon.engine.is_enabled() { injector.send_key_event(keycode, 1); injector.send_key_event(keycode, 0); }