mirror of
https://github.com/Smithay/smithay.git
synced 2024-09-28 03:21:14 +02:00
eea0d9c171
This fixes an issue I noticed where cancelled drag-and-drop in clients like Firefox and Nautilus caused a window to ignore pointer events until losing and regaining focus. It seems calling the `.ungrab` method at the end of `with_grab` means calling it after pointer focus is restored, and clients seem not to handle the `wl_pointer.enter` before the drag is actually over. Deferring the focus restoration as well is slightly complicated to implement, and seems problematic when it involves a serial. Maybe there shouldn't be any input events after the `*set_grab` call but before returning, but this seems cleaner. Taking a reference to the handler in `*InterHandle.*set_grab` is a bit annoying, but easy enough to deal with, and allows this to work more cleanly. This seems reasonable as long as we don't have a better solution to the whole `GrabStatus::Borrowed` thing. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |