158void DataDevice::data_device_set_selection(Resource *,
struct ::wl_resource *source, uint32_t serial)
162 DataSource *dataSource = source ? DataSource::fromResource(source) :
nullptr;
164 if (m_selectionSource)
167 m_selectionSource = dataSource;
168 QWaylandCompositorPrivate::get(m_compositor)->dataDeviceManager()->setCurrentSelectionSource(m_selectionSource);
169 if (m_selectionSource)
172 QWaylandClient *focusClient = m_seat->keyboard()->focusClient();
173 Resource *resource = focusClient ? resourceMap().value(focusClient->client()) : 0;
175 if (resource && m_selectionSource) {
177 send_selection(resource->handle, offer->resource()->handle);
178 }
else if (resource) {
179 send_selection(resource->handle,
nullptr);