X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdriver%2Frc.cpp;h=c1ff13ea7dee30a539a3520935d621b3a180c0d4;hp=c56fde448cd396ea72af4be94b4655e368b5e9bb;hb=1fc2700e351c0297089925aba6c3a7b890dfb077;hpb=a37ddbb7785de5f1d944f4937a5b2914ce6a3862 diff --git a/lib/driver/rc.cpp b/lib/driver/rc.cpp index c56fde4..c1ff13e 100644 --- a/lib/driver/rc.cpp +++ b/lib/driver/rc.cpp @@ -129,8 +129,11 @@ void eRCInputEventDriver::setExclusive(bool b) { if (handle >= 0) { + long evbits; int grab = b; - if (::ioctl(handle, EVIOCGRAB, grab) < 0) + if (::ioctl(handle, EVIOCGBIT(0, EV_MAX+1), &evbits) < 0) + perror("EVIOCGBIT"); + else if ((evbits & (1 << 0x1E)) && ::ioctl(handle, EVIOCGRAB, grab) < 0) perror("EVIOCGRAB"); } }