Line saver: LISTEN_STATIC macro
This parallels the LISTEN macro for statically allocated listeners, and
it allows us to remove almost all of the global wl_listener
declarations.
This also fixes a bug with the axisnotify listener, which was declared
with a compound literal. At block scope, these have automatic storage
duration [1], so the listener was no longer valid after setup()
returned. (The option to declare it static explicitly was standardized
in C23, if that ever gains suckless traction.)
ΔSLOC: -27
[1]: https://en.cppreference.com/w/c/language/compound_literal#Explanation
Line saver: follow "local = wlr->data = obj" pattern
There were still a couple of places where we could use this handy
multiple assignment to save a line.
ΔSLOC = -3
Merge remote-tracking branch 'upstream/main' into wlroots-next
Separate drag icon from layers array and Lyr enum
If we treat the drag icon as distinct from other layers (it doesn't have
contents that are interactive, focusable, etc.), then we can iterate
over layers meaningfully with a simple for loop.
ΔSLOC: -8
schedule a frame after commmiting gamma
not doing it, may freeze the output or do not actually change the gamma until
creating a client
use detached output states to set gamma
Don't bother with ignoring SIGCHLD
It added complexity, especially with the differences in behavior between
handled and ignored signals across an exec().
Reset ignored signal handler in spawn() as well
fix startup_cmd SIGCHLD handler
Ignored handlers are not reset by exec() calls
drop KDE idle support
use ext-idle-notify-v1 instead
use wlr_scene_output_build_state() to set gamma
use the new {a,di}ssociate events to handle xwayland commit listener
chase wlroots map logic unification
Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me>