RDP backend, pointer image dangles when mouse leaves RDP client window
When the mouse pointer leaves a RDP client application window, Weston leaves the last known image/glyph state of the pointer on-screen. In my case I am using xfreerdp
as the client. This is with Weston off master.
Screencap below. I can do a motion gif, but hopefully it captures the gist. The mouse has just exited off the right side of the window. Where the image ends up depends on how fast you move the mouse. What I would like is the pointer to disapear, and re-appear in the correct state when the pointer again enters the RDP client window.
If anyone has any ideas on how to get an event out of FreeRDP indicating the mouse has left the building, I can attempt a PR. I've tried naively wiring up input->FocusInEvent
in rdp_peer_init
, but sadly it never fires. I'm not actually sure what that event does, but it looked plausible. Oddly I do find through experimentation that a SynchronizeEvent
reliably fires when the pointer leaves the client, but there isn't enough information in flags
to tell the difference between the pointer leaving and (say) a caps-lock toggle off.
Any suggestions on how to tackle this appreciated.