From d5c5a8ec6161fb510545287aefaa5562d208cbd2 Mon Sep 17 00:00:00 2001 From: Ferhat Date: Tue, 13 Oct 2020 08:53:28 -0700 Subject: [PATCH] [web] Fix Altgr keyboard crash (#21781) * Fix AltGr modifier crash * update integration test --- .../test_driver/text_editing_integration.dart | 15 +++++++++++++++ lib/web_ui/lib/src/engine/keyboard.dart | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/e2etests/web/regular_integration_tests/test_driver/text_editing_integration.dart b/e2etests/web/regular_integration_tests/test_driver/text_editing_integration.dart index 30acf5a3e..49247d7d7 100644 --- a/e2etests/web/regular_integration_tests/test_driver/text_editing_integration.dart +++ b/e2etests/web/regular_integration_tests/test_driver/text_editing_integration.dart @@ -179,6 +179,21 @@ void main() { 'cancelable': true, }); + // Press and release AltGr key. + // Regression test for https://github.com/flutter/flutter/issues/58979. + dispatchKeyboardEvent(input, 'keydown', { + 'key': 'AltGraph', + 'code': 'AltRight', + 'bubbles': true, + 'cancelable': true, + }); + dispatchKeyboardEvent(input, 'keyup', { + 'key': 'AltGraph', + 'code': 'AltRight', + 'bubbles': true, + 'cancelable': true, + }); + // Press Tab. The focus should move to the next TextFormField. dispatchKeyboardEvent(input, 'keydown', { 'key': 'Tab', diff --git a/lib/web_ui/lib/src/engine/keyboard.dart b/lib/web_ui/lib/src/engine/keyboard.dart index 558e53f6f..c15886bd6 100644 --- a/lib/web_ui/lib/src/engine/keyboard.dart +++ b/lib/web_ui/lib/src/engine/keyboard.dart @@ -177,7 +177,7 @@ int _getMetaState(html.KeyboardEvent event) { if (event.getModifierState('Shift')) { metaState |= _modifierShift; } - if (event.getModifierState('Alt')) { + if (event.getModifierState('Alt') || event.getModifierState('AltGraph')) { metaState |= _modifierAlt; } if (event.getModifierState('Control')) { -- GitLab