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>
* Update Electron info
There were changes made that remove the env variable:
https://github.com/electron/electron/issues/48001
* Clarify Electron versions
* Link to the electron section of the wiki
* Edit wording and link to the electron section of the wiki
Also includes the necessary code to handle the virtual keyboard
compositor-side. Similar to the virtual pointer, we have an InputDevice
impl that allows reusing the logic from process_input_event().
Co-authored-by: wxt <3264117476@qq.com>
Before we cleaned up when binding a new manager, meaning that after a
screencopy client exited, the queue kept existing until a new one is
bound. We'll need precise tracking for the screencast IPC, so this
commit refactors to do just that: clean up the queue immediately when
all referring objects no longer exist.
This commit also fixes an issue where destroyed frames (e.g. from a
killed client) didn't clean the corresponding screencopy objects,
leading them to exist forever.
Add CastSessionId and CastStreamId newtypes. This lifts the atomic
counters from the D-Bus mutter_screen_cast module to a shared location,
preparing for adding screencopy cast tracking which will need the same
ID types.