aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/x11.cpp b/x11.cpp
index b33c0c89e4..3de40c70a8 100644
--- a/x11.cpp
+++ b/x11.cpp
@@ -819,6 +819,11 @@ bool OSystem_X11::poll_event(Event *scumm_event) {
*/
int keycode = -1;
int ascii = -1;
+ byte mode = 0;
+
+ if (event.xkey.state & 0x01) mode |= KBD_SHIFT;
+ if (event.xkey.state & 0x04) mode |= KBD_CTRL;
+ if (event.xkey.state & 0x08) mode |= KBD_ALT;
switch (event.xkey.keycode) {
case 9: /* Escape on my PC */
case 130: /* Calendar on the iPAQ */
@@ -857,7 +862,7 @@ bool OSystem_X11::poll_event(Event *scumm_event) {
scumm_event->event_code = EVENT_KEYDOWN;
scumm_event->kbd.keycode = keycode;
scumm_event->kbd.ascii = (ascii != -1 ? ascii : keycode);
- scumm_event->kbd.flags = 0;
+ scumm_event->kbd.flags = mode;
return true;
}
} break;