diff options
Diffstat (limited to 'xine_sxfe_frontend.c')
-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 08951fe3..767dc873 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.140 2010-09-24 12:34:29 phintuka Exp $ + * $Id: xine_sxfe_frontend.c,v 1.141 2010-09-24 12:45:44 phintuka Exp $ * */ @@ -1589,6 +1589,7 @@ static void XKeyEvent_handler(sxfe_t *this, XKeyEvent *kev) this->x.fe.send_event((frontend_t*)this, fe_event); else if (!this->no_x_kbd) { if (ks_name) { + if (kev->state & (Mod1Mask|ControlMask)) { char keyname[40] = ""; if (kev->state & Mod1Mask) { strcat(keyname, "Alt+"); @@ -1597,7 +1598,9 @@ static void XKeyEvent_handler(sxfe_t *this, XKeyEvent *kev) strcat(keyname, "Ctrl+"); } strncat(keyname, ks_name, sizeof(keyname) - 11); - this->x.fe.send_input_event((frontend_t*)this, "XKeySym", keyname, 0, 0); + ks_name = keyname; + } + this->x.fe.send_input_event((frontend_t*)this, "XKeySym", ks_name, 0, 0); } } } |