wl_output_add_listener(output->output, &output_listener, output);
}
+static void
+output_destroy(struct output *output)
+{
+ if (output->destroy_handler)
+ (*output->destroy_handler)(output, output->user_data);
+
+ wl_output_destroy(output->output);
+ wl_list_remove(&output->link);
+ free(output);
+}
+
void
display_set_output_configure_handler(struct display *display,
display_output_handler_t handler)
return d;
}
+static void
+display_destroy_outputs(struct display *display)
+{
+ struct output *tmp;
+ struct output *output;
+
+ wl_list_for_each_safe(output, tmp, &display->output_list, link)
+ output_destroy(output);
+}
+
void
display_destroy(struct display *display)
{
+ display_destroy_outputs(display);
+
fini_xkb(display);
fini_egl(display);