diff --git a/src/wayland-client.c b/src/wayland-client.c index 8fc56340..83f76ec2 100644 --- a/src/wayland-client.c +++ b/src/wayland-client.c @@ -836,13 +836,12 @@ display_handle_delete_id(void *data, struct wl_display *display, uint32_t id) proxy = wl_map_lookup(&display->objects, id); - if (!proxy) - wl_log("error: received delete_id for unknown id (%u)\n", id); - - if (proxy && !wl_object_is_zombie(&display->objects, id)) + if (wl_object_is_zombie(&display->objects, id)) + wl_map_remove(&display->objects, id); + else if (proxy) proxy->flags |= WL_PROXY_FLAG_ID_DELETED; else - wl_map_remove(&display->objects, id); + wl_log("error: received delete_id for unknown id (%u)\n", id); pthread_mutex_unlock(&display->mutex); }