wayland: xdg-shell implementation issues
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 9.7k
- Forks
- 565
- PR merge metrics
- No merged PRs in 30d
Description
`xdg_toplevel` and `xdg_popup`'s configure event should not notify the handler the dimensions of the window changed.
(https://github.com/linebender/druid/blob/master/druid-shell/src/backend/wayland/surfaces/toplevel.rs#L90)
(https://github.com/linebender/druid/blob/master/druid-shell/src/backend/wayland/surfaces/popup.rs#L143)
The xdg-shell protocol is clear that the state must be collected and not acted upon until the `xdg_surface::configure` event is handled. This means wait until xdg_surface's configure to tell the handler the dimensions of the window changed.
For toplevels:
> This configure event asks the client to resize its toplevel surface or to change its state. The configured state should not be applied immediately. See xdg_surface.configure for details.
For popups:
> This event asks the popup surface to configure itself given the configuration. The configured state should not be applied immediately. See xdg_surface.configure for details.
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 with druid-shell/src/backend/wayland/surfaces/toplevel.rs around line 90 and popup.rs around line 143. Trace how the xdg_toplevel and xdg_popup configure events relate to xdg_surface::configure. Done means the handler is notified of changed dimensions only when the xdg_surface configure event is handled, for both surfaces.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100