- if (private_display->private_loop->backend_source)
- tdm_event_loop_source_remove(private_display->private_loop->backend_source);
+ LIST_FOR_EACH_ENTRY(private_module, &private_display->module_list, link) {
+ if (private_module->event_source)
+ tdm_event_loop_source_remove(private_module->event_source);
+ private_module->event_source = NULL;
+ private_module->fd = -1;
+ }
+
+ LIST_FOR_EACH_ENTRY_SAFE(source, ss, &private_display->private_loop->source_list, link) {
+ tdm_event_loop_source_remove(source);
+ }
+
+#if WAYLAND_VERSION_MAJOR >= 1 && WAYLAND_VERSION_MINOR >= 15
+ wl_display_destroy_clients(private_display->private_loop->wl_display);
+#endif