rust-windowing / rust-windowing/winit
Custom cursor tracking issue
Open
Nobody has claimed this yet.
S - meta
- Dominant language
- Rust
- Stars
- 6.2k
- Forks
- 1.3k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 9
Description
Custom cursors are still missing some refinements.
Known Issues
- On Web, correctly handle multiple windows waiting on the same cursor: #3321.
- On Wayland, account for alpha: #3360.
- Figure out how to prevent
CustomCursors to outlive the event loop. This is similar to #3317 and #3258.
Improvements
- Add back
Window::set_cursor_icon()as a deprecated method: #3329. - Merge icons and cursors in one type and one method: https://github.com/rust-windowing/winit/pull/3308.
- Add a cursor getter/setter on
WindowBuilder: #3319. - Add a cursor getter on
Window. - Make sure implementations check if the new cursor being set isn't the same already set.
- MacOS: #3324.
- Wayland
- Web: #3321.
- Windows
- X11
- Return a
ResultatCustomCursorBuilder::build(), AFAIK only Windows needs it. - On Windows, extension method to load from a resource, like in
Icon::from_resource(). - On Web,
async fn build()extension method to wait until the cursor has successfully finished loading: #3384.
Caching
- MacOS: #3291
- Wayland
- Web: #3276
- Windows: #3293
- X11: #3366
Animation
- Web: #3384
- Windows: support ANI files (loaded from memory or otherwise).
- MacOS: Use
NSTimer? (idea from Firefox) - X11:
XcursorAnimate
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the custom cursor entry points, including CustomCursorBuilder::build and Window, then compare the Wayland, Windows, and X11 implementations against the unchecked items. Choose one specific checklist item before investigating the relevant platform code; done means that item is implemented and its behavior is covered by the project’s existing checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100