No description
Previously, `unmap_surface` automatically pushed all unmapped windows into the `pending_windows` list. This behavior is correct for X11 windows (which may be remapped) but incorrect for Wayland `toplevel_destroyed` events, where the role is permanently gone. This caused issues with clients like Telegram that reuse `wl_surface`s. Because the destroyed toplevel remained in `pending_windows`, a subsequent cleanup commit (e.g., null buffer) triggered a configure event. This prematurely marked the surface as `configured` in the shell state. Consequently, when the client attached a new `xdg_toplevel` role, the compositor skipped the mandatory initial configure event (assuming it was already done), causing the window to never appear. This refactors `unmap_surface` to return `Option<PendingWindow>` instead of mutating global state. - XWayland: Explicitly saves the pending window (behavior preserved). - XDG Shell: Drops the pending window, preventing ghost state interactions. Fixes #1816 |
||
|---|---|---|
| .github/workflows | ||
| cosmic-comp-config | ||
| data | ||
| debian | ||
| examples | ||
| resources | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| i18n.toml | ||
| LICENSE | ||
| Makefile | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||