The output destroy event is not handled correctly when the compositor exits
Because it does not distinguish whether the output destroyed is caused by the detach of the head or the normal exit, when the output is destroying, the window in the output is moved to another output, which will lead to unnecessary operations during normal exit, and some advanced functions cannot be implementations, such as saving the state of each output on exit to restore on next startup.