summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-12-20 10:25:13 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-12-20 10:25:13 +0000
commitca468a5f8429bbaea7c6446d1c979f0ecb72c781 (patch)
tree62d9ae34db5c4e1052b361f427840d159ccba8a2 /libvo
parent1b14e4f420fc754593219e470ed948b40e648240 (diff)
downloadmpv-ca468a5f8429bbaea7c6446d1c979f0ecb72c781.tar.bz2
mpv-ca468a5f8429bbaea7c6446d1c979f0ecb72c781.tar.xz
Simplify handling of X11 key events that are just passed through.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28168 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/x11_common.c104
1 files changed, 7 insertions, 97 deletions
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index dcbac97bbc..b02dc43953 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -582,6 +582,13 @@ static void vo_x11_putkey_ext(int keysym)
void vo_x11_putkey(int key)
{
+ static const char *passthrough_keys = " -+*/<>`~!@#$%^&()_{}:;\"\',.?\\|=[]";
+ if ((key >= 'a' && key <= 'z') ||
+ (key >= 'A' && key <= 'Z') ||
+ (key >= '0' && key <= '9') ||
+ (key > 0 && key < 256 && strchr(passthrough_keys, key)))
+ mplayer_put_key(key);
+
switch (key)
{
case wsLeft:
@@ -596,9 +603,6 @@ void vo_x11_putkey(int key)
case wsDown:
mplayer_put_key(KEY_DOWN);
break;
- case wsSpace:
- mplayer_put_key(' ');
- break;
case wsEscape:
mplayer_put_key(KEY_ESC);
break;
@@ -665,28 +669,18 @@ void vo_x11_putkey(int key)
case wsF12:
mplayer_put_key(KEY_F + 12);
break;
- case wsMinus:
case wsGrayMinus:
mplayer_put_key('-');
break;
- case wsPlus:
case wsGrayPlus:
mplayer_put_key('+');
break;
case wsGrayMul:
- case wsMul:
mplayer_put_key('*');
break;
case wsGrayDiv:
- case wsDiv:
mplayer_put_key('/');
break;
- case wsLess:
- mplayer_put_key('<');
- break;
- case wsMore:
- mplayer_put_key('>');
- break;
case wsGray0:
mplayer_put_key(KEY_KP0);
break;
@@ -738,90 +732,6 @@ void vo_x11_putkey(int key)
case wsGrayEnter:
mplayer_put_key(KEY_KPENTER);
break;
- case wsGrave:
- mplayer_put_key('`');
- break;
- case wsTilde:
- mplayer_put_key('~');
- break;
- case wsExclSign:
- mplayer_put_key('!');
- break;
- case wsAt:
- mplayer_put_key('@');
- break;
- case wsHash:
- mplayer_put_key('#');
- break;
- case wsDollar:
- mplayer_put_key('$');
- break;
- case wsPercent:
- mplayer_put_key('%');
- break;
- case wsCircumflex:
- mplayer_put_key('^');
- break;
- case wsAmpersand:
- mplayer_put_key('&');
- break;
- case wsobracket:
- mplayer_put_key('(');
- break;
- case wscbracket:
- mplayer_put_key(')');
- break;
- case wsUnder:
- mplayer_put_key('_');
- break;
- case wsocbracket:
- mplayer_put_key('{');
- break;
- case wsccbracket:
- mplayer_put_key('}');
- break;
- case wsColon:
- mplayer_put_key(':');
- break;
- case wsSemicolon:
- mplayer_put_key(';');
- break;
- case wsDblQuote:
- mplayer_put_key('\"');
- break;
- case wsAcute:
- mplayer_put_key('\'');
- break;
- case wsComma:
- mplayer_put_key(',');
- break;
- case wsPoint:
- mplayer_put_key('.');
- break;
- case wsQuestSign:
- mplayer_put_key('?');
- break;
- case wsBSlash:
- mplayer_put_key('\\');
- break;
- case wsPipe:
- mplayer_put_key('|');
- break;
- case wsEqual:
- mplayer_put_key('=');
- break;
- case wsosbrackets:
- mplayer_put_key('[');
- break;
- case wscsbrackets:
- mplayer_put_key(']');
- break;
-
-
- default:
- if ((key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z') ||
- (key >= '0' && key <= '9'))
- mplayer_put_key(key);
}
}