|
|
@ -298,17 +298,17 @@ void wlr_output_destroy(struct wlr_output *output) {
|
|
|
|
|
|
|
|
|
|
|
|
wlr_signal_emit_safe(&output->events.destroy, output);
|
|
|
|
wlr_signal_emit_safe(&output->events.destroy, output);
|
|
|
|
|
|
|
|
|
|
|
|
struct wlr_output_mode *mode, *tmp_mode;
|
|
|
|
// The backend is responsible for free-ing the list of modes
|
|
|
|
wl_list_for_each_safe(mode, tmp_mode, &output->modes, link) {
|
|
|
|
|
|
|
|
wl_list_remove(&mode->link);
|
|
|
|
|
|
|
|
free(mode);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct wlr_output_cursor *cursor, *tmp_cursor;
|
|
|
|
struct wlr_output_cursor *cursor, *tmp_cursor;
|
|
|
|
wl_list_for_each_safe(cursor, tmp_cursor, &output->cursors, link) {
|
|
|
|
wl_list_for_each_safe(cursor, tmp_cursor, &output->cursors, link) {
|
|
|
|
wlr_output_cursor_destroy(cursor);
|
|
|
|
wlr_output_cursor_destroy(cursor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (output->idle_frame != NULL) {
|
|
|
|
|
|
|
|
wl_event_source_remove(output->idle_frame);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pixman_region32_fini(&output->damage);
|
|
|
|
pixman_region32_fini(&output->damage);
|
|
|
|
|
|
|
|
|
|
|
|
if (output->impl && output->impl->destroy) {
|
|
|
|
if (output->impl && output->impl->destroy) {
|
|
|
|