Fix crash when closing output window from outer session

Emitting the close event needs to happen before
container_output_destroy, because container_output_destroy sets the
sway_output to NULL and sway_output is used in IPC.
master
Ryan Dwyer 7 years ago
parent 834805f5e2
commit 93696b78ec

@ -304,6 +304,9 @@ struct sway_container *container_destroy_noreaping(struct sway_container *con) {
return NULL; return NULL;
} }
wl_signal_emit(&con->events.destroy, con);
ipc_event_window(con, "close");
// The below functions move their children to somewhere else. // The below functions move their children to somewhere else.
if (con->type == C_OUTPUT) { if (con->type == C_OUTPUT) {
container_output_destroy(con); container_output_destroy(con);
@ -325,9 +328,6 @@ struct sway_container *container_destroy_noreaping(struct sway_container *con) {
} }
} }
wl_signal_emit(&con->events.destroy, con);
ipc_event_window(con, "close");
con->destroying = true; con->destroying = true;
list_add(server.destroying_containers, con); list_add(server.destroying_containers, con);

Loading…
Cancel
Save