-
-
Notifications
You must be signed in to change notification settings - Fork 786
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update smithay-client-toolkit to v0.18 #5276
Conversation
Also updates: - wayland-{client,protocols} to v0.31 - wayland-egl to v0.32
This appears to break the primary selection, and I'm not sure why. However, I've noticed that the update also has a new |
Also converts other DataDevice-handling code to use Read/WritePipe instead of the FileDescriptor API.
rust-analyzer can't find the standard library source code otherwise.
This is now complete, and the primary selection works once again. 😊 Pipe handling is a little cleaner as well, and there aren't quite as many |
Fixed an existing crash that occurred when switching TTYs. Looks like someone else has found and tried to fix this (#5173), but this implementation is more complete (handles loss of each different capability type, not just keyboard) and more correct (releases the associated resources). Should resolve #5154 and #5079. |
Fixed a rare, latent crash in code which assumed that capabilities couldn't be lost, uncovered by the previous fix. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this!
Just one comment about an unwrap that would be good to avoid.
I did quickly test this against weston running in X and it seemed to startup and be basically functional, so it looks good!
match capability { | ||
Capability::Keyboard => { | ||
log::trace!("Lost keyboard capability"); | ||
self.keyboard.take().unwrap().release(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please avoid the unwrap for this; I'm assuming that this will work:
self.keyboard.take().unwrap().release(); | |
self.keyboard.take().map(|p| p.release()); |
I'll fixup the unwrap and merge this, otherwise it may be a while before I get back to it! |
I rebased and pushed to main, thanks! |
Some of the issues I linked in the initial comment can be closed as well now, I don't think they get auto-closed when the commits are merged in manually and the enclosing PR closed. |
Same with the issues/PR linked in #5276 (comment) |
I closed those as duplicates, thanks for pointing me to them! |
I've taken a look and am unsure: it's possible that hyprland and river support will have been improved with the dependency bump, but I also don't use either of these compositors— and the errors reported don't seem familiar to me. I guess we'll see if people report seeing further issues. |
I do use Hyprland. The reported issues are familiar and were resolved by this PR :-) |
SCTK v0.18 includes some changes to how cursors are set, which fixes not being able to change the cursor when
XCURSOR_THEME
is unset (and emitting an error message about this once every frame). Probably fixes #5071 and #4604, and, I think, #5209. Needs testing on GNOME to see if #3106 or #2687 are fixed by this (GNOME unfortunately does not yet implement the cursor-shape-v1 protocol), but that's obviously not a blocker.