If a transient failure occurs in wlr_output_commit, re-render until it
doesn't happen. This could possibly be removed if we decide to
implement damage tracking in the future.
Unlike with X window managers, the display socket in Wayland isn't set
up prior to starting the compositor. Because of this, you can't pipe
the compositor's output directly into a program which needs access to
$WAYLAND_DISPLAY, which is a typical setup for this purpose. Existing
scripts have been forced to create a pipe/FIFO or a temporary file as an
intermediary.
Instead, send the status info directly to stdin of the -s command, which
*does* have access to $WAYLAND_DISPLAY.
Fixes#103.
Always start listening for commit events in mapnotify. This allows to
avoid checking c->mon each commit and fixes the crash opening
applications who commit subsurfaces before mapping them
Fixes#102. The "ideal" behavior might be to ignore buttons other than
the one being used for the action, but this is super-simple and still
seems reasonable.
wlr_output_damage_add_whole() has no effect in mapnotifu_sub,
destroynotify_sub and caused crashes when closing applications which use
subsurfaces
Keep track of subsurfaces in a list so that it is possible to remove and
free them.
This prevents applications such as firefox from freezing when nothing
else is going on. Those applications use subsurfaces (for efficiency
reasons), which we were not keeping track of before.
Applications who use subsurfaces were working fine as long as other
applications were updating or the user was simply moving the mouse (and
thus damaging the whole screen anyway).
I'm not sure if listening to map and unmap events of subsurfaces is
necessary.
Most of this was inspired by sway.
Prior to damage tracking, we had to make sure wlr_output_commit was
called even if we weren't rendering anything new. If we didn't, then
nothing would render after attempting the first window resize. This is
no longer a problem (maybe because adding damage schedules another frame
callback?), so we can do some normal early-returns here.