Disconnect swaybg instead of killing it

This is much more reliable. This also fixes race conditions when killing swaybg
while it's doing a wl_display_roundtrip.
This commit is contained in:
emersion 2019-02-16 23:30:19 +01:00 committed by Drew DeVault
parent c6b43359e7
commit eaec82abd2
4 changed files with 80 additions and 26 deletions

View file

@ -21,6 +21,7 @@ struct sway_output {
struct sway_node node;
struct wlr_output *wlr_output;
struct sway_server *server;
struct wl_list link;
struct wl_list layers[4]; // sway_layer_surface::link
struct wlr_box usable_area;
@ -36,6 +37,8 @@ struct sway_output {
struct sway_output_state current;
struct wl_client *swaybg_client;
struct wl_listener destroy;
struct wl_listener mode;
struct wl_listener transform;
@ -43,10 +46,7 @@ struct sway_output {
struct wl_listener present;
struct wl_listener damage_destroy;
struct wl_listener damage_frame;
struct wl_list link;
pid_t bg_pid;
struct wl_listener swaybg_client_destroy;
struct {
struct wl_signal destroy;