167void DataDevice::data_device_set_selection(Resource *,
struct ::wl_resource *source, uint32_t serial)
171 DataSource *dataSource = source ? DataSource::fromResource(source) :
nullptr;
173 if (m_selectionSource)
176 m_selectionSource = dataSource;
177 QWaylandCompositorPrivate::get(m_compositor)->dataDeviceManager()->setCurrentSelectionSource(m_selectionSource);
178 if (m_selectionSource)
181 QWaylandClient *focusClient = m_seat->keyboard()->focusClient();
182 Resource *resource = focusClient ? resourceMap().value(focusClient->client()) : 0;
184 if (resource && m_selectionSource) {
186 send_selection(resource->handle, offer->resource()->handle);
187 }
else if (resource) {
188 send_selection(resource->handle,
nullptr);