libinput debug-gui overwrites the grab userdata
&grab as the initial
tools/shared.c uses that to decide whether a device should be grabbed or not. The
user_data is later overwritten with
struct window. if a device comes in late, the decision whether to grab or not now depends on whatever the
struct window contains.