No description
Find a file
mikairyuu 15b6b678c1 fix(shell): distinguish between unmapping and destroying surfaces
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
2026-01-09 14:50:55 -07:00
.github/workflows chore: update CI 2025-10-22 23:55:11 +02:00
cosmic-comp-config chore: bump MSRV to 1.90 2025-12-22 16:29:22 +01:00
data chore: screen reader toggle shortcut 2026-01-05 16:50:52 +01:00
debian Use automatic shared library dependency on libdisplay-info 2025-10-21 08:50:17 -06:00
examples Add example for customized window decorations 2025-10-29 11:27:14 +01:00
resources i18n: translation updates from weblate 2026-01-05 13:52:41 +01:00
src fix(shell): distinguish between unmapping and destroying surfaces 2026-01-09 14:50:55 -07:00
.gitignore Rework source filtering. 2023-01-04 01:52:16 -08:00
build.rs cargo fmt 2025-10-22 23:55:11 +02:00
Cargo.lock chore: Update smithay 2026-01-08 00:20:18 +01:00
Cargo.toml chore: Update smithay 2026-01-08 00:20:18 +01:00
flake.lock Update and fix flake.nix 2024-09-02 19:44:51 +02:00
flake.nix fix: add missing libdisplay-info library into flake.nix 2025-01-12 13:09:03 +01:00
i18n.toml i18n support 2023-07-06 00:04:34 +02:00
LICENSE Initial commit 2021-12-15 17:25:15 +01:00
Makefile Use new config from cosmic-settings-config 2024-09-04 20:50:42 +02:00
rust-toolchain.toml chore: bump MSRV to 1.90 2025-12-22 16:29:22 +01:00
rustfmt.toml chore: format for Rust 2024 2025-10-22 23:55:11 +02:00