rust-windowing / rust-windowing/winit
Finish safe area implementation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 6.2k
- Forks
- 1.3k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 9
Description
https://github.com/rust-windowing/winit/pull/3890 introduced Window::safe_area, but the implementation isn't completed on all platforms. Tracking this here:
- Android: https://github.com/rust-windowing/winit/pull/4506
- AppKit / macOS: Implemented
- Orbital
- UIKit / iOS: Implemented
- Wayland: No protocol for that at the time of writing.
- Web: Calculate independently of scroll position, https://github.com/rust-windowing/winit/pull/3890#issuecomment-2438243038
- Windows
- X11
- Figure out the semantics wrt. soft keyboards: https://github.com/rust-windowing/winit/pull/4528
Maintainers: Feel free to check the box and remove the corresponding label, either if the implementation is completed, or it doesn't apply to that platform.
Note: Make sure to also wire it up so that RedrawRequested events are emitted when the safe area / insets change.
See also https://github.com/rust-windowing/winit/issues/3911.
Do not close this issue before the ## Platform-specific section on safe_area is updated too.
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 by reviewing the safe_area implementation introduced in PR 3890 and the linked platform work, including Android PR 4506 and the Web discussion. Check each remaining platform item and the soft-keyboard semantics, and ensure RedrawRequested is emitted when insets change. Done means applicable checklist items are resolved and the Platform-specific section documents safe_area.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, mobile, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100