X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fce04ebed510a97e17f019a35c327dce78b6d916..45aefe230c922417067e3409039e4372340e894f:/lib/driver/rcinput.cpp diff --git a/lib/driver/rcinput.cpp b/lib/driver/rcinput.cpp index 256d07e3..e593087d 100644 --- a/lib/driver/rcinput.cpp +++ b/lib/driver/rcinput.cpp @@ -11,7 +11,7 @@ #include #include -void eRCDeviceInputDev::handleCode(int rccode) +void eRCDeviceInputDev::handleCode(long rccode) { struct input_event *ev = (struct input_event *)rccode; if (ev->type!=EV_KEY) @@ -44,6 +44,9 @@ void eRCDeviceInputDev::handleCode(int rccode) case KEY_RIGHTSHIFT: case KEY_LEFTALT: case KEY_CAPSLOCK: + case KEY_INSERT: + case KEY_DELETE: + case KEY_MUTE: filtered=false; default: break; @@ -72,7 +75,7 @@ eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver) { int len=id.length(); int idx=0; - while(idx < len) + while(idx <= len-8) { if (!strncasecmp(&id[idx++], "KEYBOARD", 8)) { @@ -80,8 +83,13 @@ eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver) break; } } + setExclusive(true); eDebug("Input device \"%s\" is %sa keyboard.", id.c_str(), iskeyboard ? "" : "not "); +} +void eRCDeviceInputDev::setExclusive(bool b) +{ + driver->setExclusive(!iskeyboard && b); } const char *eRCDeviceInputDev::getDescription() const