Index: ui/events/x/events_x.cc |
diff --git a/ui/events/x/events_x.cc b/ui/events/x/events_x.cc |
index bf8b04ee58b0cde6d9036d3d5840b84869b8672a..07f903d1fc3722720edeaa4f1abc07c023865196 100644 |
--- a/ui/events/x/events_x.cc |
+++ b/ui/events/x/events_x.cc |
@@ -137,6 +137,8 @@ int GetEventFlagsFromXState(unsigned int state) { |
flags |= ui::EF_ALT_DOWN; |
if (state & LockMask) |
flags |= ui::EF_CAPS_LOCK_DOWN; |
+ if (state & Mod4Mask) |
+ flags |= ui::EF_COMMAND_DOWN; |
sadrul
2014/04/14 21:51:32
If we are going to use it here, we should update t
|
if (state & Mod5Mask) |
flags |= ui::EF_ALTGR_DOWN; |
if (state & Button1Mask) |
@@ -148,6 +150,12 @@ int GetEventFlagsFromXState(unsigned int state) { |
return flags; |
} |
+int GetEventFlagsFromXKeyEvent(XEvent* xevent) |
sadrul
2014/04/14 21:51:32
{ in this line
|
+{ |
+ return GetEventFlagsFromXState(xevent->xkey.state) | |
+ ui::EventFlagsFromXKeysym(XLookupKeysym(&xevent->xkey, 0)); |
sadrul
2014/04/14 21:51:32
If we use the macro from Xutil.h, then perhaps we
|
+} |
+ |
// Get the event flag for the button in XButtonEvent. During a ButtonPress |
// event, |state| in XButtonEvent does not include the button that has just been |
// pressed. Instead |state| contains flags for the buttons (if any) that had |
@@ -328,7 +336,7 @@ int EventFlagsFromNative(const base::NativeEvent& native_event) { |
case KeyPress: |
case KeyRelease: { |
XModifierStateWatcher::GetInstance()->UpdateStateFromEvent(native_event); |
- return GetEventFlagsFromXState(native_event->xkey.state); |
+ return GetEventFlagsFromXKeyEvent(native_event); |
} |
case ButtonPress: |
case ButtonRelease: { |