summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY3
-rw-r--r--examples/remote.conf.example2
-rw-r--r--xine_sxfe_frontend.c15
3 files changed, 16 insertions, 4 deletions
diff --git a/HISTORY b/HISTORY
index a075e3c0..8d7f5387 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3,7 +3,8 @@ VDR Plugin 'xineliboutput' Revision History
????-??-??: Version 1.1.0
-- Added FreeBSD compability (Thanks to Juergen Lock)
+- Added support for Alt and Ctrl key modifiers to X11 keyboard remote controller.
+- Added FreeBSD compability (Thanks to Juergen Lock and Joerg Pulz)
- Added support for yaepg(hd) video window with HUD OSD (Thanks to grueni75)
- Fixed lot of compiler warnings (Thanks to Winfried Koehler)
- Fixed mixer volume being reset at vdr-sxfe start when using software volume control
diff --git a/examples/remote.conf.example b/examples/remote.conf.example
index df13bc33..ff3afd88 100644
--- a/examples/remote.conf.example
+++ b/examples/remote.conf.example
@@ -45,6 +45,8 @@ XKeySym.Volume- KP_Subtract
XKeySym.Mute m
XKeySym.Info I
XKeySym.Audio A
+XKeySym.Audio Alt+A
+XKeySym.Audio Alt+a
XKeySym.Subtitles S
XKeySym.Schedule F6
XKeySym.Channels F7
diff --git a/xine_sxfe_frontend.c b/xine_sxfe_frontend.c
index a9cf29ec..d0f7433d 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.135 2010-07-18 19:41:43 phintuka Exp $
+ * $Id: xine_sxfe_frontend.c,v 1.136 2010-08-25 09:17:23 phintuka Exp $
*
*/
@@ -1578,8 +1578,17 @@ 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)
- this->x.fe.send_input_event((frontend_t*)this, "XKeySym", XKeysymToString(ks), 0, 0);
+ else if (!this->no_x_kbd) {
+ char keyname[40] = "";
+ if (kev->state & Mod1Mask) {
+ strcat(keyname, "Alt+");
+ }
+ if (kev->state & ControlMask) {
+ strcat(keyname, "Ctrl+");
+ }
+ strncat(keyname, XKeysymToString(ks), sizeof(keyname) - 11);
+ this->x.fe.send_input_event((frontend_t*)this, "XKeySym", keyname, 0, 0);
+ }
}
}