aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Skovlund2013-01-14 20:11:34 +0100
committerLars Skovlund2013-01-14 20:11:34 +0100
commit8e733f03b766bb741b3b87842607ba11c3652496 (patch)
treeef9c9056274536dc1ad8fea76ad3c38e38d5f640
parentbef9a965d5aff4393b6640994e6cf27e343c10ee (diff)
downloadscummvm-rg350-8e733f03b766bb741b3b87842607ba11c3652496.tar.gz
scummvm-rg350-8e733f03b766bb741b3b87842607ba11c3652496.tar.bz2
scummvm-rg350-8e733f03b766bb741b3b87842607ba11c3652496.zip
SCI: Event handling: Include modifier flags in null events.
Fixes bug #3580473
-rw-r--r--engines/sci/event.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/sci/event.cpp b/engines/sci/event.cpp
index 14443db1e2..90351a4d5e 100644
--- a/engines/sci/event.cpp
+++ b/engines/sci/event.cpp
@@ -161,8 +161,15 @@ SciEvent EventManager::getScummVMEvent() {
noEvent.mousePos = input.mousePos = mousePos;
if (!found || ev.type == Common::EVENT_MOUSEMOVE)
- return noEvent;
+ {
+ int modifiers = em->getModifierState();
+ noEvent.modifiers =
+ ((modifiers & Common::KBD_ALT) ? SCI_KEYMOD_ALT : 0) |
+ ((modifiers & Common::KBD_CTRL) ? SCI_KEYMOD_CTRL : 0) |
+ ((modifiers & Common::KBD_SHIFT) ? SCI_KEYMOD_LSHIFT | SCI_KEYMOD_RSHIFT : 0);
+ return noEvent;
+ }
if (ev.type == Common::EVENT_QUIT) {
input.type = SCI_EVENT_QUIT;
return input;