| Index: ui/events/keycodes/keyboard_code_conversion_x.cc
|
| diff --git a/ui/events/keycodes/keyboard_code_conversion_x.cc b/ui/events/keycodes/keyboard_code_conversion_x.cc
|
| index 4311a96f7e5b34d7d41cabf086b4104c738540e2..b42aa8a87a950a8ec7606188249e446980621ad7 100644
|
| --- a/ui/events/keycodes/keyboard_code_conversion_x.cc
|
| +++ b/ui/events/keycodes/keyboard_code_conversion_x.cc
|
| @@ -545,8 +545,11 @@ KeyboardCode KeyboardCodeFromXKeyEvent(const XEvent* xev) {
|
| }
|
|
|
| keycode = KeyboardCodeFromXKeysym(keysym);
|
| - if (keycode == VKEY_UNKNOWN)
|
| + if (keycode == VKEY_UNKNOWN && !IsModifierKey(keysym)) {
|
| + // Modifier keys should not fall back to the hardware-keycode-based US
|
| + // layout. See crbug.com/402320
|
| keycode = DefaultKeyboardCodeFromHardwareKeycode(xkey->keycode);
|
| + }
|
|
|
| return keycode;
|
| }
|
|
|