diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2010-02-13 18:47:15 +0100 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2010-02-13 18:47:41 +0100 |
| commit | 1fc2700e351c0297089925aba6c3a7b890dfb077 (patch) | |
| tree | 0b90771f6201b23393da84f8eaeb6bf33d86179c /lib/driver/rc.cpp | |
| parent | a37ddbb7785de5f1d944f4937a5b2914ce6a3862 (diff) | |
| download | enigma2-1fc2700e351c0297089925aba6c3a7b890dfb077.tar.gz enigma2-1fc2700e351c0297089925aba6c3a7b890dfb077.zip | |
lib/driver/rc.cpp,rcinput.cpp: only do EVIOCGRAB when event bit 0x1E is set in event device evbits
Diffstat (limited to 'lib/driver/rc.cpp')
| -rw-r--r-- | lib/driver/rc.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/driver/rc.cpp b/lib/driver/rc.cpp index c56fde44..c1ff13ea 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"); } } |
