Clarification on wl_pointer.leave and currently held buttons
In the wl_keyboard protocol it explicitly says when we get a wl_keyboard.leave event "the client should assume all keys are lifted."
wl_pointer has no matching statement for button state.
The reason it came up is right now in Qt clients we do clear up pressed buttons on pointer leave.
This causes us a minor user-facing bug that it's an apparently established X11 practice to right click hold, open a context menu, then select the entry when the mouse on release. This is broken with the above behaviour.
However not resetting the button state on wl_pointer.leave would cause us bigger issues if a compositor doesn't clean up button state explicitly when leaving.
However we want it to work would benefit from a spec clarification.