diff options
author | phintuka <phintuka> | 2010-09-24 12:31:37 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2010-09-24 12:31:37 +0000 |
commit | e2aa4b0741d8089a1d79b4350232773069281926 (patch) | |
tree | d009a433cb8b96030fa808b73fe2ae45f04daf69 | |
parent | e426dca4fa5d5a9a66f74fd02a059bf299a6726f (diff) | |
download | xineliboutput-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.c | 7 |
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); + } } } } |