| Index: ui/events/x/events_x.cc
|
| diff --git a/ui/events/x/events_x.cc b/ui/events/x/events_x.cc
|
| index 9d6b15a2eca3a0dc71a833999707b1385c79e011..73cbc4ec5fb663be283036ab50152113d96b4aa1 100644
|
| --- a/ui/events/x/events_x.cc
|
| +++ b/ui/events/x/events_x.cc
|
| @@ -166,8 +166,10 @@ int GetEventFlagsFromXKeyEvent(XEvent* xevent) {
|
| //
|
| // We have to send these fabricated key events to XIM so it can correctly
|
| // handle the character compositions.
|
| + const unsigned int shift_lock_mask = ShiftMask | LockMask;
|
| const bool fabricated_by_xim =
|
| - xevent->xkey.keycode == 0 && xevent->xkey.state == 0;
|
| + xevent->xkey.keycode == 0 &&
|
| + (xevent->xkey.state & ~shift_lock_mask) == 0;
|
| const int ime_fabricated_flag =
|
| fabricated_by_xim ? ui::EF_IME_FABRICATED_KEY : 0;
|
| #endif
|
|
|