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 30acf5a3efb..49247d7d79c 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 558e53f6f92..c15886bd6b1 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')) {