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 20c329771e7f75dd6345aba42c82ba077c437114..0a226fcef288331b983ee292914fcd5ab7bb0d76 100644 |
--- a/ui/events/keycodes/keyboard_code_conversion_x.cc |
+++ b/ui/events/keycodes/keyboard_code_conversion_x.cc |
@@ -476,7 +476,7 @@ KeyboardCode KeyboardCodeFromXKeyEvent(XEvent* xev) { |
KeySym keysym = NoSymbol; |
XKeyEvent xkey = xev->xkey; |
- xkey.state &= ~(ShiftMask | Mod1Mask); |
+ xkey.state &= (~0xFF | Mod2Mask); // Clears the xkey's state except numlock. |
// XLookupKeysym does not take into consideration the state of the lock/shift |
// etc. keys. So it is necessary to use XLookupString instead. |
XLookupString(&xkey, NULL, 0, &keysym, NULL); |