159void DataDevice::data_device_set_selection(Resource *,
struct ::wl_resource *source, uint32_t serial)
163 DataSource *dataSource = source ? DataSource::fromResource(source) :
nullptr;
165 if (m_selectionSource)
168 m_selectionSource = dataSource;
169 QWaylandCompositorPrivate::get(m_compositor)->dataDeviceManager()->setCurrentSelectionSource(m_selectionSource);
170 if (m_selectionSource)
173 QWaylandClient *focusClient = m_seat->keyboard()->focusClient();
174 Resource *resource = focusClient ? resourceMap().value(focusClient->client()) : 0;
176 if (resource && m_selectionSource) {
178 send_selection(resource->handle, offer->resource()->handle);
179 }
else if (resource) {
180 send_selection(resource->handle,
nullptr);