Crash when device actor changes while event is in the queue
There's quite a nasty crash in Clutter right now that probably got introduced when we started bypassing the event queue for fast event delivery to clients.
We set the event source actor before queing the event in the stage queue. Now when this actor gets destroyed while the event is sitting in the queue, our device entry in ClutterStage will update as expected, but the source actor of the event will remain the same. This blows up when trying to emit that event to Clutter, where we crash in _clutter_actor_handle_event()
because self
is NULL.
A reproducer I found that works often is opening and selecting an action in a context menu in firefox via touch.
Not sure what a good fix for this is, we might have to go through the whole picking dance again and update the source actor on the event when emitting the event to Clutter.