Add a new type of ipc subscription so clients can be notified of changes
in keyboard shortcuts inhibitors. This allows to react to those events
by e.g. changing container properties (title, ...) to notify the user
about this circumstance (add marker, change color, ...). For this reason
the event includes information about the affected container as well.
Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
Add a new type of ipc subscription so clients can be notified of changes
in idle inhibitors. This allows to react to those events by e.g.
changing container properties (title, ...) to notify the user about this
circumstance (add marker, change color, ...). For this reason the event
includes information about the affected container as well.
Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
Extend the container description in IPC JSON to include keyboard
shortcut inhibitor state so it can be evaluated by clients. This
requires adding a new function that can retrieve a keyboard shortcuts
inhibitor applying to a specific surface no matter what seat it is
attached to.
Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
7e69a7076f ("Drop wl_drm") has dropped wl_drm, however a lot of
software wasn't quite ready for this (Xwayland, libva, amdvlk).
Keep wl_drm disabled by default to pressure the wl_drm phase-out,
but add a -Dlegacy-wl-drm flag for users to restore the previous
behavior in the meantime.
References: https://github.com/swaywm/sway/issues/7897
Across a wayland compositor, there are multiple shells: It can be
a toplevel, or a layer_shell, or even something more meta like a drag
icon or highlight indicators when dragging windows around.
This object lets us store values that represent these modes of operation
and keep track of what object is being represented.
Since output layout is destroyed when the wayland display is destroyed
we run into a destroy listener order problem: Either the display starts
destroying the outputs first, in which case we're good: The existing
handling will clean up. However, things go wrong if the display decides
to destroy the output layout first. In this case, sway will hold
invalid references to the output layout as part of each output so that
when it finally goes to destroy them, sway will dereference destroyed
output layout bits.
Ref: https://github.com/swaywm/sway/pull/6844#issuecomment-1843599513
On multi-seat configurations a zwp_pointer_gestures_v1 global was
created for every seat.
Instead, create the global once in the input manager, to be shared
across all seats.