if (keycode < 0 || keycode >= count)
return -1;
- dev->kbd_binds[keycode] = kbd_key;
+ dev->kbd_binds[keycode] = (kbd_key == -1 ? 0 : kbd_key);
return 0;
}
if (act_mask != -1) {
for (i = 0; i < count; i++)
dev->binds[IN_BIND_OFFS(i, bind_type)] &= ~act_mask;
- }
- else
+ } else {
memset(dev->binds, 0, sizeof(dev->binds[0]) * count * IN_BINDTYPE_COUNT);
+ if (dev->kbd_binds)
+ memset(dev->kbd_binds, 0, sizeof(dev->kbd_binds[0]) * count);
+ }
}
}