mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 04:53:36 +01:00
Ignore diagonals for iMON PAD in keyboard mode
For user with an iMON PAD Remote control, the keyboard mode is very touchy and almost useless with XBMC. Event with stabilized() algorithm the behaviour is unexpected. To make it less touchy, I make it ignore any value too close to the diagonals.
This commit is contained in:
parent
24b414d5a7
commit
c0cae3784a
1 changed files with 11 additions and 0 deletions
|
@ -1406,6 +1406,17 @@ static void imon_pad_to_keys(struct imon_context *ictx, unsigned char *buf)
|
|||
buf[3] = (dir >> 8) & 0xFF;
|
||||
scancode = be32_to_cpu(*((u32 *)buf));
|
||||
} else {
|
||||
/*
|
||||
* For users without stabilized, just ignore any value getting
|
||||
* to close to the diagonal.
|
||||
*/
|
||||
if ((abs(rel_y) < 2 && abs(rel_x) < 2) ||
|
||||
abs(abs(rel_y) - abs(rel_x)) < 2 ) {
|
||||
spin_lock_irqsave(&ictx->kc_lock, flags);
|
||||
ictx->kc = KEY_UNKNOWN;
|
||||
spin_unlock_irqrestore(&ictx->kc_lock, flags);
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* Hack alert: instead of using keycodes, we have
|
||||
* to use hard-coded scancodes here...
|
||||
|
|
Loading…
Reference in a new issue