summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp b/src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp
index 21adf26f0..81972e83e 100644
--- a/src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp
+++ b/src/plugins/platforms/wayland/qwaylanddatadevicemanager.cpp
@@ -205,7 +205,8 @@ QWaylandDataDeviceManager::QWaylandDataDeviceManager(QWaylandDisplay *display, u
{
m_data_device_manager = static_cast<struct wl_data_device_manager *>(wl_display_bind(display->wl_display(),id,&wl_data_device_manager_interface));
- //create transfer devices for all input devices
+ // Create transfer devices for all input devices.
+ // ### This only works if we get the global before all devices and is surely wrong when hotplugging.
QList<QWaylandInputDevice *> inputDevices = m_display->inputDevices();
for (int i = 0; i < inputDevices.size();i++) {
inputDevices.at(i)->setTransferDevice(getDataDevice(inputDevices.at(i)));
@@ -219,7 +220,8 @@ QWaylandDataDeviceManager::~QWaylandDataDeviceManager()
struct wl_data_device *QWaylandDataDeviceManager::getDataDevice(QWaylandInputDevice *inputDevice)
{
- struct wl_data_device *transfer_device = wl_data_device_manager_get_data_device(m_data_device_manager,inputDevice->wl_input_device());
+ struct wl_data_device *transfer_device = wl_data_device_manager_get_data_device(m_data_device_manager,
+ inputDevice->wl_seat());
wl_data_device_add_listener(transfer_device,&transfer_device_listener,this);
return transfer_device;