From 53624376b4d614689695d1ea56c1052cd0e7ad12 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sat, 17 Mar 2007 15:44:26 +0000 Subject: 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 --- engines/agi/agi.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'engines/agi') 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; -- cgit v1.2.3