aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
diff options
context:
space:
mode:
authorTorbjörn Andersson2007-03-17 15:44:26 +0000
committerTorbjörn Andersson2007-03-17 15:44:26 +0000
commit53624376b4d614689695d1ea56c1052cd0e7ad12 (patch)
treec98fc0e637f6634d270ae0b6e5311852e3634811 /engines/agi
parente72455c215a1deebe235d18e7efbe55f76d8f2da (diff)
downloadscummvm-rg350-53624376b4d614689695d1ea56c1052cd0e7ad12.tar.gz
scummvm-rg350-53624376b4d614689695d1ea56c1052cd0e7ad12.tar.bz2
scummvm-rg350-53624376b4d614689695d1ea56c1052cd0e7ad12.zip
Applied my re-revised patch #1487149 ("Simplified keyboard repeat"), with
Fingolfin's blessings. Keyboard repeat is now handled by the event manager, rather than by individual engines. Since this can cause problems with some engines (see the AGI engine), the extra "key down" events are marked as "synthetic", so that they can be ignored if necessary. svn-id: r26170
Diffstat (limited to 'engines/agi')
-rw-r--r--engines/agi/agi.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp
index c15428e7c5..03b1615e85 100644
--- a/engines/agi/agi.cpp
+++ b/engines/agi/agi.cpp
@@ -113,35 +113,43 @@ void AgiEngine::processEvents() {
switch (key = event.kbd.keycode) {
case 256 + 20: // left arrow
case 260: // key pad 4
- key = KEY_LEFT;
+ if (!event.synthetic)
+ key = KEY_LEFT;
break;
case 256 + 19: // right arrow
case 262: // key pad 6
- key = KEY_RIGHT;
+ if (!event.synthetic)
+ key = KEY_RIGHT;
break;
case 256 + 17: // up arrow
case 264: // key pad 8
- key = KEY_UP;
+ if (!event.synthetic)
+ key = KEY_UP;
break;
case 256 + 18: // down arrow
case 258: // key pad 2
- key = KEY_DOWN;
+ if (!event.synthetic)
+ key = KEY_DOWN;
break;
case 256 + 24: // page up
case 265: // key pad 9
- key = KEY_UP_RIGHT;
+ if (!event.synthetic)
+ key = KEY_UP_RIGHT;
break;
case 256 + 25: // page down
case 259: // key pad 3
- key = KEY_DOWN_RIGHT;
+ if (!event.synthetic)
+ key = KEY_DOWN_RIGHT;
break;
case 256 + 22: // home
case 263: // key pad 7
- key = KEY_UP_LEFT;
+ if (!event.synthetic)
+ key = KEY_UP_LEFT;
break;
case 256 + 23: // end
case 257: // key pad 1
- key = KEY_DOWN_LEFT;
+ if (!event.synthetic)
+ key = KEY_DOWN_LEFT;
break;
case 261: // key pad 5
key = KEY_STATIONARY;