clean up foreign toplevel destruction: don't `retain` to remove one item
document why we have duplicate destruction logic in foreign toplevel
messy to have two of the same comment but like how else do i make that
information readily available to both
Co-authored-by: HigherOrderLogic <73709188+HigherOrderLogic@users.noreply.github.com>
The damage tracker stores framebuffer effect cache, so we want anything
that renders repeatedly to render through a reused damage tracker. This
way, the cache persists and is reused across renders.
This will be important for the non-xray background effects.
As far as I can tell, the only place where we can hit this currently is
do-screen-transition when no outputs are connected. A check could be
trivially added there, but I don't think it's worth enforcing it with an
error! -- it's just an optimization (avoiding running unnecessary code)
while being rare and difficult to find if it does get logged.
The virtual keyboard is reverted to the same state as it was in v25.08, i.e.
cannot trigger compositor binds. A bigger Smithay refactor is necessary to
properly support them without breaking other things.
Fixes wtype being completely broken.
* remove pre-commit hook when surface is destroyed
this re-uses the already existing remove_default_dmabuf_pre_commit_hook
during surface destruction instead of just removing the hook from the
stored list of hooks.
* do not add dmabuf pre-commit hook for destroyed surfaces
this prevents surfaces getting stored indefinitely in case
some logic tries to add the hook for an already
destroyed surface.
* align surface/toplevel destruction order for client destruction
resource destruction has undefined order in case
the client does not explicitly destroy the resourced
and wait for destruction to complete.
the same applies for clients exiting unexpectedly.
* rearrange some things
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
* ipc: allow load-config to relocate the path of the config
* doc: add info about alternative configuration paths and relocating
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
* Update docs/wiki/Integrating-niri.md
* Update niri-ipc/src/lib.rs
* Update src/ipc/server.rs
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>