summaryrefslogtreecommitdiffstats
path: root/libvo/vo_sdl.c
diff options
context:
space:
mode:
authoratmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-05-05 21:38:33 +0000
committeratmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-05-05 21:38:33 +0000
commitd087b3eb2a0ea680b2ab821ed27883df76bb34a6 (patch)
tree7a63e1bd5c8a08694a2676316890e6ecc21f6e63 /libvo/vo_sdl.c
parent0cbbca1277dc2efb55df56c000cefcdee9c27a55 (diff)
downloadmpv-d087b3eb2a0ea680b2ab821ed27883df76bb34a6.tar.bz2
mpv-d087b3eb2a0ea680b2ab821ed27883df76bb34a6.tar.xz
Added workaround for buggy SDL versions (before 1.2.1).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@706 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_sdl.c')
-rw-r--r--libvo/vo_sdl.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/libvo/vo_sdl.c b/libvo/vo_sdl.c
index 9c0d525662..354ec5b9ae 100644
--- a/libvo/vo_sdl.c
+++ b/libvo/vo_sdl.c
@@ -96,6 +96,8 @@
/* define to force software-surface (video surface stored in system memory)*/
#undef SDL_NOHWSURFACE
+//#define BUGGY_SDL //defined by configure
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -805,7 +807,25 @@ static void check_events (void)
/* graphics mode selection shortcuts */
+#ifdef BUGGY_SDL
case SDL_KEYDOWN:
+ switch(event.key.keysym.sym) {
+ case SDLK_UP: mplayer_put_key(KEY_UP);break;
+ case SDLK_DOWN: mplayer_put_key(KEY_DOWN);break;
+ case SDLK_LEFT: mplayer_put_key(KEY_LEFT);break;
+ case SDLK_RIGHT: mplayer_put_key(KEY_RIGHT);break;
+ case SDLK_ASTERISK:
+ case SDLK_KP_MULTIPLY:
+ case SDLK_w: mplayer_put_key('*');break;
+ case SDLK_SLASH:
+ case SDLK_KP_DIVIDE:
+ case SDLK_s: mplayer_put_key('/');break;
+ }
+ break;
+ case SDL_KEYUP:
+#else
+ case SDL_KEYDOWN:
+#endif
keypressed = event.key.keysym.sym;
if(verbose > 1) printf("SDL: Key pressed: '%i'\n", keypressed);
@@ -851,6 +871,19 @@ static void check_events (void)
case SDLK_TAB: mplayer_put_key('\t');break;
case SDLK_PAGEUP: mplayer_put_key(KEY_PAGE_UP);break;
case SDLK_PAGEDOWN: mplayer_put_key(KEY_PAGE_DOWN);break;
+#ifdef BUGGY_SDL
+ case SDLK_UP:
+ case SDLK_DOWN:
+ case SDLK_LEFT:
+ case SDLK_RIGHT:
+ case SDLK_ASTERISK:
+ case SDLK_KP_MULTIPLY:
+ case SDLK_w:
+ case SDLK_SLASH:
+ case SDLK_KP_DIVIDE:
+ case SDLK_s:
+ break;
+#else
case SDLK_UP: mplayer_put_key(KEY_UP);break;
case SDLK_DOWN: mplayer_put_key(KEY_DOWN);break;
case SDLK_LEFT: mplayer_put_key(KEY_LEFT);break;
@@ -861,6 +894,7 @@ static void check_events (void)
case SDLK_SLASH:
case SDLK_KP_DIVIDE:
case SDLK_s: mplayer_put_key('/');break;
+#endif
default:
mplayer_put_key(keypressed);
}