A couple of questions: passing events between FSMs, blocking and measuring cursor movement...
I've mostly only looked at touchpad-tap.c the last days so I hardly have a comprehensive insight into the entire architecture, but while doing so it struck me that I wanted something that I hadn't seen and that seemed to be missing.
If I view the event handling of every device as a big vague composite FSM consisting of smaller, more discernible FSMs (e.g. tapping and gesture FSMs for touchpads), is there:
- a mechanism to subscribe to some "events"/actions (mouse move, button down) that are generated by another FSM for the same device (e.g. gesture FSM → tap FSM, assuming the two run in parallel)?
- the same thing but between devices (e.g. mouse → touchpad)?
As an example, if I'd like to abort some state in the tap FSM on a valid move event by another device, I don't know how I'd be notified of that event in order to react to it.