summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2010-09-24 12:31:37 +0000
committerphintuka <phintuka>2010-09-24 12:31:37 +0000
commite2aa4b0741d8089a1d79b4350232773069281926 (patch)
treed009a433cb8b96030fa808b73fe2ae45f04daf69
parente426dca4fa5d5a9a66f74fd02a059bf299a6726f (diff)
downloadxineliboutput-e2aa4b0741d8089a1d79b4350232773069281926.tar.gz
xineliboutput-e2aa4b0741d8089a1d79b4350232773069281926.tar.bz2
Fixed handling of XKeyEvents when XKeysymToString() returns NULL
(Thanks to Winfried Köhler)
-rw-r--r--xine_sxfe_frontend.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/xine_sxfe_frontend.c b/xine_sxfe_frontend.c
index 9e5178f5..245cf138 100644
--- a/xine_sxfe_frontend.c
+++ b/xine_sxfe_frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_sxfe_frontend.c,v 1.138 2010-09-12 22:01:43 phintuka Exp $
+ * $Id: xine_sxfe_frontend.c,v 1.139 2010-09-24 12:31:37 phintuka Exp $
*
*/
@@ -1586,6 +1586,8 @@ static void XKeyEvent_handler(sxfe_t *this, XKeyEvent *kev)
if (fe_event)
this->x.fe.send_event((frontend_t*)this, fe_event);
else if (!this->no_x_kbd) {
+ const char *ks_name = XKeysymToString(ks);
+ if (ks_name) {
char keyname[40] = "";
if (kev->state & Mod1Mask) {
strcat(keyname, "Alt+");
@@ -1593,8 +1595,9 @@ static void XKeyEvent_handler(sxfe_t *this, XKeyEvent *kev)
if (kev->state & ControlMask) {
strcat(keyname, "Ctrl+");
}
- strncat(keyname, XKeysymToString(ks), sizeof(keyname) - 11);
+ strncat(keyname, ks_name, sizeof(keyname) - 11);
this->x.fe.send_input_event((frontend_t*)this, "XKeySym", keyname, 0, 0);
+ }
}
}
}