diff --git a/flutter/android/app/src/main/AndroidManifest.xml b/flutter/android/app/src/main/AndroidManifest.xml index ad496edb0..1759a1ac0 100644 --- a/flutter/android/app/src/main/AndroidManifest.xml +++ b/flutter/android/app/src/main/AndroidManifest.xml @@ -43,7 +43,7 @@ out = Map(); + out['name'] = name; + // default: down = false + if (down == true) { + out['down'] = "true"; + } + // default: press = true + if (press != false) { + out['press'] = "true"; + } + setByName('input_key', json.encode(modify(out))); } static void moveMouse(double x, double y) { diff --git a/flutter/lib/pages/remote_page.dart b/flutter/lib/pages/remote_page.dart index b06990e68..c383bc361 100644 --- a/flutter/lib/pages/remote_page.dart +++ b/flutter/lib/pages/remote_page.dart @@ -343,9 +343,14 @@ class _RemotePageState extends State { onKey: (data, e) { final key = e.logicalKey; if (e is RawKeyDownEvent) { - if (e.repeat) { + if (e.repeat && + !e.isAltPressed && + !e.isControlPressed && + !e.isShiftPressed && + !e.isMetaPressed) { sendRawKey(e, press: true); } else { + sendRawKey(e, down: true); if (e.isAltPressed && !FFI.alt) { FFI.alt = true; } else if (e.isControlPressed && !FFI.ctrl) { @@ -355,7 +360,6 @@ class _RemotePageState extends State { } else if (e.isMetaPressed && !FFI.command) { FFI.command = true; } - sendRawKey(e, down: true); } } // [!_showEdit] workaround for soft-keyboard's control_key like Backspace / Enter