17#include <qwayland-server-wlr-data-control-unstable-v1.h>
29 QPointer<SeatInterface>
seat;
41 : QtWaylandServer::zwlr_data_control_device_v1(resource)
54 if (dataSource ==
seat->selection() || dataSource ==
seat->primarySelection()) {
55 wl_resource_post_error(resource->handle, error::error_used_source,
"source given to set_selection was already used before");
73 if (dataSource ==
seat->selection() || dataSource ==
seat->primarySelection()) {
74 wl_resource_post_error(resource->handle, error::error_used_source,
"source given to set_primary_selection was already used before");
87 wl_resource_destroy(resource->handle);
97 wl_resource *data_offer_resource = wl_resource_create(resource()->client(), &zwlr_data_control_offer_v1_interface, resource()->
version(), 0);
98 if (!data_offer_resource) {
113DataControlDeviceV1Interface::DataControlDeviceV1Interface(
SeatInterface *seat, wl_resource *resource)
135 return d->primarySelection;
141 d->send_selection(offer ? offer->
resource() :
nullptr);
146 if (d->resource()->version() >= ZWLR_DATA_CONTROL_DEVICE_V1_PRIMARY_SELECTION_SINCE_VERSION) {
148 d->send_primary_selection(offer ? offer->
resource() :
nullptr);
153#include "moc_datacontroldevice_v1.cpp"
The AbstractDataSource class abstracts the data that can be transferred to another client.
DataControlSourceV1Interface * selection() const
void primarySelectionChanged(KWin::DataControlSourceV1Interface *dataSource)
SeatInterface * seat() const
void sendPrimarySelection(AbstractDataSource *other)
~DataControlDeviceV1Interface() override
void sendSelection(AbstractDataSource *other)
void selectionChanged(KWin::DataControlSourceV1Interface *dataSource)
DataControlSourceV1Interface * primarySelection() const
void zwlr_data_control_device_v1_set_primary_selection(Resource *resource, struct ::wl_resource *source) override
DataControlDeviceV1Interface * q
void zwlr_data_control_device_v1_destroy_resource(Resource *resource) override
QPointer< SeatInterface > seat
void zwlr_data_control_device_v1_destroy(Resource *resource) override
void zwlr_data_control_device_v1_set_selection(Resource *resource, wl_resource *source) override
QPointer< DataControlSourceV1Interface > primarySelection
DataControlOfferV1Interface * createDataOffer(AbstractDataSource *source)
DataControlDeviceV1InterfacePrivate(DataControlDeviceV1Interface *q, SeatInterface *seat, wl_resource *resource)
QPointer< DataControlSourceV1Interface > selection
wl_resource * resource() const
static DataControlSourceV1Interface * get(wl_resource *native)
Represents a Seat on the Wayland Display.
void registerDataControlDevice(DataControlDeviceV1Interface *dataDevice)
static KWIN_EXPORT SeatInterfacePrivate * get(SeatInterface *seat)