diff options
author | David Edmundson <davidedmundson@kde.org> | 2023-03-02 16:05:05 +0000 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-12-11 12:59:20 +0000 |
commit | e6867fd21e3bf4234abe934b71b5af3850d98d06 (patch) | |
tree | 1098090c5cb44a25e0628be50f4b065ab6f3fa31 | |
parent | 9eb71d709e045222c3270ea3e7f0c4134525322f (diff) |
tests: Only track one data offer during a drag
A drag consists of one data source which in turn will be represented by
one data device sent to each client.
We don't need to manage a list
Change-Id: Icd2aba3ced1d8254d15400b0b687888b0872cc35
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 9c9f66a73dae53937af3f756fdbecc715fd3bbbb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | tests/auto/client/shared/datadevice.cpp | 11 | ||||
-rw-r--r-- | tests/auto/client/shared/datadevice.h | 2 |
2 files changed, 5 insertions, 8 deletions
diff --git a/tests/auto/client/shared/datadevice.cpp b/tests/auto/client/shared/datadevice.cpp index 26ebec6bd..2a874a77f 100644 --- a/tests/auto/client/shared/datadevice.cpp +++ b/tests/auto/client/shared/datadevice.cpp @@ -51,7 +51,7 @@ DataOffer *DataDevice::sendDataOffer(wl_client *client, const QStringList &mimeT { Q_ASSERT(client); auto *offer = new DataOffer(this, client, m_manager->m_version); - m_offers << offer; + m_offer = offer; for (auto *resource : resourceMap().values(client)) wl_data_device::send_data_offer(resource->handle, offer->resource()->handle); for (const auto &mimeType : mimeTypes) @@ -71,8 +71,8 @@ void DataDevice::sendEnter(Surface *surface, const QPoint &position) { uint serial = m_manager->m_compositor->nextSerial(); Resource *resource = resourceMap().value(surface->resource()->client()); - for (DataOffer *offer: m_offers) - wl_data_device::send_enter(resource->handle, serial, surface->resource()->handle, position.x(), position.y(), offer->resource()->handle); + if (m_offer) + wl_data_device::send_enter(resource->handle, serial, surface->resource()->handle, position.x(), position.y(), m_offer->resource()->handle); } void DataDevice::sendMotion(Surface *surface, const QPoint &position) @@ -108,10 +108,7 @@ void DataOffer::data_offer_receive(Resource *resource, const QString &mime_type, void DataOffer::data_offer_destroy(QtWaylandServer::wl_data_offer::Resource *resource) { - bool removed = m_dataDevice->m_sentSelectionOffers.removeOne(this); - if (!removed) - removed = m_dataDevice->m_offers.removeOne(this); - QVERIFY(removed); + m_dataDevice->m_sentSelectionOffers.removeOne(this); wl_resource_destroy(resource->handle); } diff --git a/tests/auto/client/shared/datadevice.h b/tests/auto/client/shared/datadevice.h index ee1e57d65..792a3e4bb 100644 --- a/tests/auto/client/shared/datadevice.h +++ b/tests/auto/client/shared/datadevice.h @@ -63,7 +63,7 @@ public: DataDeviceManager *m_manager = nullptr; Seat *m_seat = nullptr; QList<DataOffer *> m_sentSelectionOffers; - QList<DataOffer *> m_offers; + QPointer<DataOffer> m_offer; signals: void dragStarted(); |