hwc_handle_display_destroy(struct wl_listener *listener, void *data)
{
struct ds_tizen_hwc *hwc;
+ struct ds_tizen_hwc_client *client, *tmp;
hwc = wl_container_of(listener, hwc, destroy);
ds_inf("Global destroy: hwc(%p)", hwc);
- wl_signal_emit(&hwc->events.destroy, hwc);
wl_list_remove(&hwc->destroy.link);
+
+ wl_list_for_each_safe(client, tmp, &hwc->clients, link)
+ wl_resource_destroy(client->resource);
+
wl_global_destroy(hwc->global);
+
+ wl_signal_emit(&hwc->events.destroy, hwc);
+
free(hwc);
}