As mentioned in https://github.com/swaywm/wlroots/issues/393 keybinds
did't trigger / were checked with "odd" keys and modifiers.
This commit sends the keycode through two paths, one to get the keycode
and modifiers *after* xkb handles them, a secondary path to get a "raw"
keysym without modifiers and then add the modifiers rootston knows
about.
This will result in the `[Alt]+[Shift]+2` combination I mention earlier
going through the keybind detection twice.
1) `[Alt]+[at]`
2) `[Alt]+[Shift]+2`
When either combination is found, the appropriate keybind is executed.
The xkb handled version will be prefered over the "raw" version.
We now use doubles until the last minute, which makes it so we can move
the pointer more precisely. This also includes a fix for tablet tools,
which move absolutely and sometimes do not update the X or Y axis.
Would choke on NULL name on strcmp later on:
#0 0x00007ffff6e0ad4a in __strcmp_sse2_unaligned () at /usr/lib/libc.so.6
#1 0x00005555555593d2 in config_get_keyboard (config=0x555555774f80, device=0x555555775768) at ../rootston/config.c:443
#2 0x000055555555d7e3 in keyboard_add (device=0x555555775768, input=0x555555e96d70) at ../rootston/keyboard.c:206
#3 0x000055555555ca39 in input_add_notify (listener=0x555555e96fa8, data=0x555555775768) at ../rootston/input.c:34
#4 0x00007ffff7ba2b80 in wl_signal_emit (signal=0x5555557754f8, data=0x555555775768) at /usr/include/wayland-server-core.h:388
#5 0x00007ffff7ba37e0 in wlr_x11_backend_start (backend=0x5555557754f0) at ../backend/x11/backend.c:286
#6 0x00007ffff7b9372d in wlr_backend_start (backend=0x5555557754f0) at ../backend/backend.c:29
#7 0x000055555555dcc0 in main (argc=1, argv=0x7fffffffe408) at ../rootston/main.c:39